Je voudrais ajouter un préfixe sur tous les dossiers et répertoires.
Exemple:
j'ai
Hi.jpg
1.txt
folder/
this.file_is.here.png
another_folder.ok/
Je souhaite ajouter le préfixe "PRE_"
PRE_Hi.jpg
PRE_1.txt
PRE_folder/
PRE_this.file_is.here.png
PRE_another_folder.ok/
Cordialement,
Réponses:
Merci à Peter van der Heijden , en voici un qui fonctionnera pour les noms de fichiers contenant des espaces:
("-" est nécessaire pour réussir avec des fichiers commençant par des tirets, dont les noms seraient autrement interprétés comme des commutateurs pour la commande mv)
la source
ls
commande*
et mettez des guillemets autour des arguments surmv
, cela fonctionnera pour les fichiers contenant des espaces.Utilisez le script de changement de nom de cette façon:
Il n'y a aucun problème avec les métacaractères ou les espaces dans les noms de fichiers.
la source
rename
m'a toujours aidé à gérer très facilement plusieurs fichiers renommés.Pour ajouter un préfixe ou un suffixe pour les fichiers (répertoires), vous pouvez utiliser la méthode simple et puissante de xargs :
Il utilise l'option de remplacement de paramètre de xargs: -I. Et vous pouvez obtenir plus de détails sur la page de manuel.
la source
ls *.old | xargs -I {} mv {} PRE_{}
Cela pourrait être fait en exécutant une simple
find
commande:La commande ci-dessus fera précéder tous les fichiers et dossiers du répertoire actuel avec
PRE_
.la source
Pour ajouter un préfixe à tous les fichiers et dossiers dans le répertoire actuel en utilisant util-linux
rename
(par opposition àprename
la variante perl de Debian et de certains autres systèmes), vous pouvez faire:Cela trouve la première occurrence de la chaîne vide (qui est trouvée immédiatement), puis remplace cette occurrence par votre préfixe, puis colle le reste du nom de fichier jusqu'à la fin. Terminé.
Pour les suffixes , vous devez utiliser la version perl ou utiliser find .
la source
util-linux
sur Debian Stretch semble fournir cela comme/usr/bin/rename.ul
.Si vous avez Ruby (1.9+)
la source
avec Perl:
la source
Voici un script simple que vous pouvez utiliser. J'aime utiliser le module non standard
File::chdir
pour gérer lescd
opérations de gestion , donc pour utiliser ce script tel quel, vous devrez l'installer (sudo cpan File::chdir
).la source
Sur mon système, je n'ai pas la
rename
commande. Voici une simple doublure. Il trouve tous les fichiers HTML de manière récursive et ajouteprefix_
devant leurs noms:la source
find
vous pouvez également exécuter des commandes, pas besoin de boucle: stackoverflow.com/a/33297439/2351568Cela préfixera vos fichiers dans leur répertoire.
Le
${f%/*}
est le chemin jusqu'au dernier slash/
-> le répertoireLe
${f##*/}
est le texte sans rien avant la dernière barre oblique/
-> nom de fichier sans le cheminAlors c'est comme ça que ça se passe:
la source