Nautilus 的动态模板名称

Nautilus 的动态模板名称

我真的很喜欢可以添加模板,~/Templates以便通过带有Nautilus或的模板创建新文件Caja

我希望改进的是我的文件命名。

它们被命名为:Unknown-[Template-Name-Here]。我更喜欢这样的格式,[Template-Name-Here]-[Date]而日期应该采用这样的格式YYYY-mm-dd

这样的事情已经可能了吗?

我怎样才能自动重命名我的模板文件名:)

答案1

在这种情况下,nautilus 脚本可能是最佳解决方案。它们被放置在~/.local/share/nautilus/scriptsnautilus 或~/.config/caja/scriptscaja 中,并且无论哪种情况都需要设置为可执行文件 ( chmod ug+x $path_to_script)。

该脚本将创建一个对话框,要求您选择模板,然后在当前目录中基于该模板创建一个具有您想要的格式的文件:

#!/bin/bash

current_nautilus_dir=$(python -c 'import gio,sys; print(gio.File(sys.argv[1]).get_path())' "$NAUTILUS_SCRIPT_CURRENT_URI")
# python-free:
# current_nautilus_dir=$(echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed -e 's/%/\\x/g' -e 's_^file://__' | xargs -0 printf "%b" )
template_dir=$(xdg-user-dir TEMPLATES)
template_name=$(find "$template_dir" ! -type d -print0 | sed 's_'$template_dir'/__g' | xargs -0 zenity --list --column=Template)
template_short_name=$(basename "$template_name")
destination_name="${current_nautilus_dir}/${template_short_name}-$(date "+%Y-%m-%d")"

if [ -f "$destination_name" ]
then
    notify-send "Destination already exists"
else
    cp "${template_dir}/${template_name}" "$destination_name"
fi

这将使用来自的脚本将 URI 转换为路径这里

相关内容