Sous Linux, je renomme parfois des fichiers comme celui-ci:
mv dir1/dir2/dir3/file.txt dir1/dir2/dir3/file.txt.old
Notez que je veux simplement renommer le fichier, pas le déplacer vers un autre répertoire.
Existe-t-il une commande qui me permettrait de faire une version abrégée de cette commande? Je pense à quelque chose comme:
mv dir1/dir2/dir3/file.txt file.txt.old
ou peut-être même quelque chose comme (pour simplement ajouter au nom):
mv dir1/dir2/dir3/file.txt {}.old
Mon objectif n'est pas de devoir spécifier à nouveau le chemin complet.
Je sais que les "exemples" que j'ai écrits ne fonctionnent pas, mais ce n'est qu'une idée de ce que je veux accomplir.
Je ne veux pas avoir à entrer dans le répertoire.
(cd dir1/dir2/dir3 && exec mv file.txt{,.old})
a effectivement les mêmes performances que le code sans le sous-processus, car cela exec
évite l' fork()
ing lors de l'appel de commande externe, vous avez donc exactement une fourchette dans les deux sens.