L’un des moyens de renommer rapidement des fichiers sous Windows est
F2 > Rename > Tab (to next file) > Rename ...
Mais dans Ubuntu / Nautilus, je ne peux pas passer au fichier suivant. Mais étant sous Linux, je pense qu’il doit exister une alternative en ligne de commande.
Cependant, je souhaite parfois plus de contrôle sur la manière de renommer des fichiers spécifiques. Dans ce cas, il est peut-être préférable de pouvoir passer au fichier suivant.
command-line
rename
Jiew Meng
la source
la source
Réponses:
Je l'utilise
rename
tout le temps. C'est assez simple, mais j'espère que vous connaissez la regex de base:Cela remplacera la chaîne
SEARCH
parREPLACE
dans chaque fichier (c'est-à-dire,*
). Le/g
moyen global, donc si vous aviez unSEARCH_SEARCH.jpg
, il serait renomméREPLACE_REPLACE.jpg
. Si vous ne l'aviez pas fait/g
, cela n'aurait fait qu'une fois la substitution, et donc maintenant nomméeREPLACE_SEARCH.jpg
. Si vous voulez/i
ne pas tenir compte de la casse, ajoutez (ce serait le cas/gi
ou/ig
à la fin).Avec les expressions régulières, vous pouvez faire beaucoup plus.
Notez qu'il
rename
s'agit de la commandeprename
(également appelée Perlrename
), qui prend en charge les expressions régulières complètes de Perl. Il y en a un autrerename
qui utilise des modèles et qui n'est pas aussi puissant.prename
utilisé pour être installé par défaut sur Ubuntu (avec Perl), mais maintenant vous devrez peut-être faire:Voici quelques exemples:
Préfixe
Ajouter :
document.pdf
renommé enMyPrefix_document.pdf
Supprimer :
Aussi, vous pouvez supprimer les chaînes indésirables. Supposons que vous ayez 20 fichiers MP3 nommés comme
CD RIP 01 Song.mp3
et que vous vouliez supprimer la partie "CD RIP", et que vous souhaitiez les supprimer avec une seule commande.CD RIP 01 Song.mp3
à01 Song.mp3
Notez l’espace supplémentaire
'^CD RIP '
, sans l’espace, tous les fichiers auraient un espace comme premier caractère du fichier. Notez également que cela fonctionnera sans le^
caractère, mais correspondraitCD RIP
à n'importe quelle partie du nom de fichier. La^
garantie ne supprime les caractères que s'ils sont au début du fichier.Suffixe
Ajouter :
document.pdf
renommé endocument.pdf_MySuffix
Changement :
va changer
Something.pdf
enSomething.doc
. (La raison de la barre oblique inversée est,.
est un caractère générique dans regexp donc.pdf
correspondqPDF
alors que\.pdf
ne correspond qu'à la chaîne exacte.pdf
. Il est également très important de noter que si vous n'êtes pas familier avec BASH, vous devez mettre des barres obliques inverses entre guillemets SIMPLES! Vous ne pouvez pas omettre les guillemets ou utiliser des guillemets doubles ou bash essayera de les traduire. bash\.
et"\."
égaux.
. (mais les guillemets doubles et anti - slash sont utilisés, par exemple « \ n » pour une nouvelle ligne, mais puisque"\."
n'est pas une séquence d'échappement arrière valide, traduit en.
)En fait, vous pouvez même inclure les parties de la chaîne entre guillemets au lieu de la totalité:
's/Search/Replace/g'
est identique às/'Search'/'Replace'/g
ets/Search/Replace/g
à BASH. Vous devez juste faire attention aux caractères spéciaux (et aux espaces).Je suggère d'utiliser l'
-n
option lorsque vous n'êtes pas sûr d'avoir les expressions régulières correctes. Il montre ce qui serait renommé, puis quitte sans le faire. Par exemple:Ceci listera tous les changements qu'il aurait apportés si vous n'aviez pas mis le
-n
drapeau là-bas. Si le résultat est satisfaisant, appuyez sur Uppour revenir en arrière, puis effacez-n
et appuyez sur Enter(ou remplacez-le par-v
pour afficher toutes les modifications apportées).Remarque : les versions Ubuntu supérieures à 17.04 ne sont pas livrées avec les
rename
valeurs par défaut. Cependant, elles sont toujours disponibles dans les dépôts. Utilisezsudo apt install rename
pour l'installerla source
rename
commande, voici ce que j'ai fait pour annexer:for f in *; do mv -v "$f" "prependThis$f"; done
(?:\.[0-9]{3})$
dans votre modèle, il correspondra à toutes les extensions de fichier à 3 chiffres d'un groupe passif. Exemple:rename s/^my_favorite_movie.avi(?:\.[0-9]{3})$/random_movie.avi/ *
. Jetez un oeil à cette feuille de triche regex .Essayez pyrenamer .
Ce n'est pas intégré à Nautilus, mais il fait le travail. Voici une critique.
Thunar (partie de XFCE) a également un renameur que vous pouvez exécuter séparément.
la source
Il semble y avoir un projet sur le tableau de bord appelé Nautilus-Renamer . Vous pouvez l'installer en l'exécutant
make install
une fois que vous avez téléchargé le script et l'avez désarchivé. Il semble avoir certaines fonctionnalités ou, si vous connaissez certaines programmations, vous pouvez simplement les améliorer selon vos besoins, car il ne s'agit que d'un script Python.la source
En ligne de commande, pour renommer un seul fichier, la commande est simplement
Si vous voulez le faire en batch, vous voudrez probablement le faire via un script. Si vous fournissez plus de détails, moi-même ou quelqu'un d'autre pouvons probablement vous en préparer un. Cela dit, un script pour ajouter des éléments à un fichier pourrait ressembler à ceci:
En fonction de la manière dont vous avez besoin de renommer les éléments, cela sera probablement modifié, par exemple si vous devez suivre des règles de renommage spécifiques. (Personnellement, je le ferais via un script Perl car mon bash-foo n'est pas terrible, mais c'est juste moi.)
Notez que j'ai obtenu la séparation du nom de fichier et de l'extension d' une question posée précédemment .
la source
Si vous souhaitez le faire sans ligne de commande, comme pour Windows, utilisez la flèche vers la droite au lieu de la touche de tabulation . Ceci sélectionnera le fichier suivant comme le ferait l'onglet sous Windows.
la source
Pas vraiment la même question, comment peut-on renommer plusieurs fichiers à la fois? mais je vais suggérer le même programme que j'ai suggéré dans cette réponse: qmv .
qmv est un outil pratique du paquet renameutils. Il vous permet d'utiliser votre éditeur de texte favori pour renommer des fichiers. Combiné à la puissance de vim, vous disposez d'un excellent utilitaire de changement de nom.
Je l’appelle habituellement comme
qmv -f do
dans le répertoire où je veux renommer un tas de fichiers. Ou si je veux renommer récursivementqmv -R -f do
.Chaque fois que j'ai besoin de renommer plusieurs fichiers, je me rabat toujours sur qmv (et vim).
http://www.nongnu.org/renameutils/
la source
Si la seule option qui convient consiste à renommer manuellement les fichiers, un excellent moyen de le faire consiste à utiliser
vidir
(dans lemoreutils
package):Exemples
Renommer des fichiers de manière sélective
Contenu du répertoire de travail actuel:
Exécuter
vidir
, renommer les noms de fichiers dans les lignes contenant les noms de fichiers que vous souhaitez renommer; appuyez sur CTRL+ Oet CTRL+ X:Changer de nom de fichier de manière sélective
Contenu du répertoire de travail actuel:
Contenu des fichiers du répertoire de travail actuel:
Exécuter
vidir
, permutez les nombres dans les lignes contenant les noms de fichiers que vous voulez changer; appuyez sur CTRL+ Oet CTRL+ X:Suppression sélective de fichiers
Contenu du répertoire de travail actuel:
Exécuter
vidir
, supprimez les lignes contenant les fichiers que vous souhaitez supprimer; appuyez sur CTRL+ Oet CTRL+ X:la source
J'utilise krename. C'est une application graphique. Il pourrait lire les balises mp3 et ainsi de suite.
Il existe en tant qu'application distincte et fait partie de Krusader.
Il y a aussi un
rename
script - qui fait partie de l'installation standard de Perl (vous l'avez probablement déjà installé). Vérifiez avecman rename
.la source