Ich muss alle Bilddateien in einem Verzeichnis umbenennen und sie so benennen, wie der Ordner heißt, in dem sie sich befinden

Ich muss alle Bilddateien in einem Verzeichnis umbenennen und sie so benennen, wie der Ordner heißt, in dem sie sich befinden

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 dalle 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

verwandte Informationen