Динамические имена шаблонов для Nautilus

Мне очень нравится, что я могу добавить шаблоны в ~/Templates, чтобы создавать новые файлы по шаблону с Nautilus или Caja.

Что я хотел бы улучшить, так это присвоить имена моим файлам.

Они названы: Unknown-[Template-Name-Here]. Я бы предпочел такой формат [Template-Name-Here]-[Date], в то время как дата должна быть в формате YYYY-mm-dd.

Возможно ли уже что-то подобное?

Как автоматизировать переименование имен файлов моего шаблона:)

2
задан 24 May 2016 в 14:56

1 ответ

В этом случае сценарии наутилуса являются, вероятно, лучшим решением. Они размещаются в ~/.local/share/nautilus/scripts для наутилуса или в ~/.config/caja/scripts для caja и в любом случае должен быть сделан исполняемым файлом (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 в путь, с помощью сценария отсюда.

1
ответ дан 2 December 2019 в 04:56

Другие вопросы по тегам:

Похожие вопросы: