2016-09-13 3 views
1

Lorsque je crée des documents en latex, plusieurs fichiers sont créés avec le même nom de base mais une extension différente. Si je veux renommer le fichier original, je dois également renommer tous les autres fichiers du dossier.Renommer tous les fichiers avec le même nom de base

Y a-t-il un moyen de faire ce qui suit?

mv file_basename.* file_newname.[whatever was globbed] 

Répondre

1

Considérons un répertoire avec ces fichiers:

$ ls 
file_basename.a file_basename.b file_basename.c 

Maintenant, nous allons exécuter le perl rename utilitaire pour renommer les fichiers:

$ prename 's/file_basename/file_newname/' * 
$ ls 
file_newname.a file_newname.b file_newname.c 

Comme vous pouvez le voir tous les fichiers ont le nouveau nom.

prename, parfois appelé rename, fait partie du paquet perl.

Notez que certaines distributions Linux installent par défaut une version différente et incompatible. Si vous en avez un, la commande ci-dessus ne fonctionnera pas. Pour plus d'informations sur les distributions livrées avec prename ou comment l'installer sur votre distribution, voir here.

0

Voici un script bash simple qui fait cela (appelons-le rename-prefix):

#!/bin/bash 

basename="$1" 
newname="$2" 
for file in "$basename"*; do 
    mv -iv -- "$file" "$newname${file#$basename}" 
done 

Il doit être exécuté à partir du répertoire où se trouvent les fichiers. Vous l'exécutez comme ceci:

rename-prefix file_basename. file_newname.