Ich muss alle Bilddateien in einem Verzeichnis umbenennen und ihnen den Namen des Ordners geben, in dem sie sich befinden ... Ist dies mit einem Bash-Skript möglich?
Ich muss sie auch fortlaufend nummerieren (0001.jpg, 0002.jpg, 0003.jpg usw.). Mein Problem ist, dass es zwischen den Nummern einige Sprünge gibt (0018.jpg, 0019.jpg, 0025.jpg, 0026.jpg usw.). Ich möchte 0025.jpg in 0020.jpg und 0026.jpg in 0021.jpg usw. umbenennen.
Antwort1
Ja, das ist möglich. Sie können find /search/path -type d
alle Verzeichnisse finden und die Option -exec verwenden, um einige Aktionen mit dem Verzeichnispfad als Parameter auszuführen. Und Sie können ein Bash-Skript ausführen lassen NUM=0; for file in /path/to/folder/*.jpg; do mv file NUM.jpg; let "NUM=NUM+1"; done;
oder so etwas
Antwort2
Um diesen Befehl zu verwenden, müssen Sie sich im Verzeichnis befinden, in dem sich die JPG-Dateien befinden, oder Sie müssen den Befehl ein wenig anpassen.
let a=0; for i in *.jpg; do let a=a+1; b=`basename $PWD`; c=`printf %04d$b.jpg $a`; mv $i $c; done
Die Ausgabe sieht wie folgt aus:
0001<dirname>.jpg