Динамические имена шаблонов для Nautilus
Мне очень нравится, что я могу добавлять шаблоны в ~/Templates
для создания новых файлов по шаблону с Nautilus
или же Caja
,
То, что я хотел бы улучшить - это присвоение имен моим файлам.
Они названы: Unknown-[Template-Name-Here]
, Я бы предпочел такой формат [Template-Name-Here]-[Date]
в то время как дата должна быть в формате YYYY-mm-dd
,
Это уже возможно?
Как я могу автоматизировать переименование имен файлов моего шаблона:)
1 ответ
В этом случае сценарии nautilus, вероятно, являются лучшим решением. Они размещены в ~/.local/share/nautilus/scripts
для наутилуса или в ~/.config/caja/scripts
для Каха и в любом случае нужно сделать исполняемым (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 в путь, используя скрипт здесь.