C'est mon problème: j'ai un dossier avec 500 images nommé:
1.jpg
2.jpg
3.jpg
etc..
J'ai copié ce dossier et maintenant je dois renommer ces mêmes images de 501 à 1000 mais dans l'ordre comme ceci:
1.jpg becomes 501.jpg
2.jpg becomes 502.jpg
3.jpg becomes 503.jpg
....
Lorsque j'utilise ma commande de changement de nom standard:
i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg && echo $i && ((i++)); done
Il commande des images de 501 à 1000 mais elles sont toutes dispersées:
23.jpg becomes 501.jpg,
66.jpg becomes 502.jpg
...
(ils sont dans le bon ordre, mais ça les mélange)
Je sais que c'est probablement une commande qui me manque ...
command-line
rename
batch-rename
Anti douleur
la source
la source
Réponses:
Essayez Thunar , qui est le gestionnaire de fichiers par défaut pour Xfce. Il est très léger et est livré avec un outil de renommage en vrac pratique. Vous pouvez installer Thunar en exécutant la commande suivante dans Terminal:
Vous pourrez probablement également installer à partir du logiciel Ubuntu.
Comment utiliser l'utilitaire
Outre la numérotation, cet utilitaire prend en charge les actions suivantes:
la source
pyrenamer
fonctionne parfaitement et c'est ce que j'utilise pour les renommages de bunk quand je veux une interface graphique pour comparer avant / après la sortie.La
find
commande trouve des fichiers pour 'directory' (23.jpg
,66.jpg
...). vous pourriez mettre un|sort
après la découverte.Mais vos méthodes sont trop complexes.
la source
for i in {1..500}; do ...
aurait été plus facile.Avec
rename
commande.Ou en pure
bash
et en utilisant l' expansion des paramètres shell .la source
Si j'ai bien compris ce que vous demandez, je pense que vous pouvez le faire en utilisant l'outil de renommage par défaut:
Vous devez supprimer le
-vn
commutateur (verbose - aucune action) après le test, pour rendre la modification effective.la source
rename
est lié àprename(1)
partir duperl
package qui ne supporte pas toutes ces options de ligne de commande.'s/^(\d+)/sprintf("%d",$1+500)/e'
. Je mettrai à jour ma réponse en conséquence. Merci.Une autre façon d'y parvenir avec la commande juste shell
count = 1; pour i in
ls
; faire mv $ i CN $ ((count ++)). $ {i ## *.}; terminéla source