65 votes

Renommer plusieurs fichiers dans le shell

J'ai plusieurs fichiers dans un répertoire, exemple : linux_file1.mp4 , linux_file2.mp4 et ainsi de suite. Comment déplacer ces fichiers, en utilisant le shell, de sorte que les noms soient file1.mp4 , file2.mp4 et ainsi de suite. J'ai environ 30 fichiers que je veux déplacer vers le nouveau nom.

17voto

cweiske Points 13722
$ rename 's/linux_//' linux_*.mp4

6voto

dtrckd Points 124

Une façon native simple de le faire, avec la traversée de répertoire :

 find -type f | xargs -I {} mv {} {}.txt

Renommera chaque fichier en place en ajoutant l'extension .txt à la fin.

Et une manière cool plus générale avec la parallélisation :

 find -name "file*.p" | parallel 'f="{}" ; mv -- {} ${f:0:10}trump${f:4}'

6voto

Mrinal Saurabh Points 109

J'ai pu remplacer les noms de fichiers dans les répertoires en combinant les réponses @dtrckd et @Sorpigal.

 for file in `find -name "linux_*.mp4"`; do mv "$file" "${file/linux_/}" ; done

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X