GNU/Linux >> Tutoriels Linux >  >> Linux

Comment remplacer un caractère par un autre dans tous les noms de fichiers des répertoires actuels ?

Comment renommer tous les fichiers/sous-répertoires du dossier actuel ?

Disons que j'ai de nombreux fichiers et sous-répertoires contenant des espaces et que je souhaite remplacer tous les espaces par un trait de soulignement.

File 1
File 2
File 3
Dir 1
Dir 3

devrait être renommé en

File_1
File_2
File_3
Dir_1
Dir_3

Réponse acceptée :

Si vous avez également besoin de renommer des fichiers dans des sous-répertoires et que votre find prend en charge le -execdir prédicat, alors vous pouvez faire

find /search/path -depth -name '* *' 
    -execdir bash -c 'mv -- "$1" "${1// /_}"' bash {} ;

Merci à @glenn jackman pour avoir suggéré -depth option pour find et me faire réfléchir.

Notez que sur certains systèmes (y compris ceux de GNU/Linux), find peut ne pas trouver les fichiers dont le nom contient des espaces et également des séquences d'octets qui ne forment pas de caractères valides (typique avec des fichiers multimédias avec des noms avec des caractères non-ASCII encodés dans un jeu de caractères différent de celui des paramètres régionaux). Définition des paramètres régionaux sur C (comme dans LC_ALL=C find... ) résoudrait le problème.


Linux
  1. Rechercher des fichiers et des répertoires sous Linux avec la commande find

  2. Comment trouver un fichier sous Linux dans tous les répertoires de manière récursive

  3. Comment déplacer tous les fichiers (y compris cachés) d'un répertoire à un autre ?

  4. Comment lister récursivement tous les fichiers et répertoires

  5. Comment trouver tous les fichiers se terminant par .rb avec Linux ?

Comment rechercher des fichiers sous Linux avec la commande Find

Comment rechercher des fichiers avec la commande fd sous Linux

Comment copier un fichier d'un autre répertoire vers celui en cours ?

Comment rechercher des fichiers avec des dizaines de critères avec la commande Bash Find

Comment trouver tous les fichiers épars sous Linux

Comment trouver les répertoires ou fichiers les plus gourmands en espace ?