Renommer plusieurs fichiers en ajoutant une chaîne au début

21

Pour environ 200 fichiers dans un répertoire, je voudrais ajouter la chaîne 1_au début de tous les noms de fichiers.

Les noms de fichiers sont, par exemple, DATASET_X_Y_Zet le résultat devrait être 1_DATASET_X_Y_Z.

Je ne connais rien aux scripts Shell, mais il y a peut-être une doublure pour le terminal.

macydanim
la source
Le lien @Rinzwind porte sur une question différente. La question de Macydanim concerne l'ajout de chaînes aux noms de fichiers, pas au contenu des fichiers.
jc

Réponses:

38
  • rename 's/^/1_/' * pour renommer tous les fichiers du répertoire courant

ou

  • rename 's/^/1_/' DATASET*pour renommer tous les fichiers du répertoire courant en commençant par DATASETleur nom

Explication: l'expression s/^/1_/dit: "remplacer le début du nom de fichier (c'est-à-dire ce symbole -> ^) 'par 1_".

dAnjou
la source
Si vous renamene le faites pas hors de la boîte, vous devez installer prename(renommer PERL).
user1359
14

Vous pouvez facilement renommer tous les fichiers dans le répertoire courant (en supposant que vous utilisez bash):

for i in *; do mv "$i" 1_"$i"; done

évidemment, prenez-le avec soin; il remaniera TOUS les fichiers du répertoire courant qui sont 'visibles' (le nom de fichier ne commençant pas par un '.')

karlacio
la source
C'est la première solution correcte que j'ai trouvée, qui peut être utilisée pour ajouter quelque chose comme .csvà un sous-ensemble de fichiers, avec une expression générique modifiée à la place de *. +1
Zelphir Kaltstahl
Hou la la! Boucles sur la CLI! C'est nouveau. :)
Raymond Wachaga
9

Vous pouvez utiliser pyRenamer . Il peut être trouvé dans le centre du logiciel Ubuntu. entrez la description de l'image ici Le modèle de fichier d'origine doit être {X} et le modèle de fichier renommé doit être 1_ {1}

nickguletskii
la source
Un de mes programmes préférés
Allan