web-dev-qa-db-fra.com

Noms de modèles dynamiques pour Nautilus

J'aime vraiment pouvoir ajouter des modèles à ~/Templates afin de créer de nouveaux fichiers par un modèle avec Nautilus ou Caja.

Ce que j'aime avoir amélioré, c'est le nommage de mes fichiers.

Ils s'appellent: Unknown-[Template-Name-Here]. Je préfère un tel format [Template-Name-Here]-[Date] alors que la date doit être au format YYYY-mm-dd.

Est-ce que quelque chose comme ça est déjà possible?

Comment puis-je automatiser le changement de nom des noms de fichiers de mon modèle :)

2
tokam

Dans ce cas, les scripts nautilus sont probablement la meilleure solution. Ils sont placés dans ~/.local/share/nautilus/scripts pour nautilus ou dans ~/.config/caja/scripts pour caja et dans les deux cas doivent être exécutables (chmod ug+x $path_to_script).

Ce script créera une boîte de dialogue vous demandant votre choix de modèle puis créera un fichier basé sur ce modèle dans le répertoire courant, avec le format souhaité:

#!/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

Cela convertit l'URI en un chemin, en utilisant le script de ici .

1
aplaice