Sie können ein schnellen Shell-Skript schreiben, dies für Sie tun. Um den Namen des aktuellen Ordners zu erhalten:
pwd|awk -F'/' '{print $NF}'
und den aktuellen Ordner der Eltern zu erhalten:
pwd|awk -F'/' '{SL = NF-1; print $SL}'
aktualisieren
Erstellen Sie eine Datei, die wie folgt aussieht:
#!/bin/bash
for f in `find . -name '*jpg'`
do
filename=`echo $f|awk -F'/' '{SL = NF-1; TL = NF-2; print $TL "_" $SL "_" $NF}'`
cp $f newfolder/$filename
done
und dann tun Sie chmod +x
darauf. Führen Sie das Skript auf der obersten Ebene aus. In diesem Fall müssen Sie das Ziel, den neuen Ordner, im Voraus festlegen.
Ich nahm diese Verzeichnisstruktur:
./bar
./bar/baz
./bar/baz/1.jpg
./bar/baz/2.jpg
./bar/baz/3.jpg
./bar/buz
./bar/buz/1.jpg
./bar/buz/2.jpg
./bar/buz/3.jpg
./foo
./foo/baz
./foo/baz/1.jpg
./foo/baz/2.jpg
./foo/baz/3.jpg
./foo/buz
./foo/buz/1.jpg
./foo/buz/2.jpg
./foo/buz/3.jpg
und in das machte:
./newfolder/bar_baz_1.jpg
./newfolder/bar_baz_2.jpg
./newfolder/bar_baz_3.jpg
./newfolder/bar_buz_1.jpg
./newfolder/bar_buz_2.jpg
./newfolder/bar_buz_3.jpg
./newfolder/foo_baz_1.jpg
./newfolder/foo_baz_2.jpg
./newfolder/foo_baz_3.jpg
./newfolder/foo_buz_1.jpg
./newfolder/foo_buz_2.jpg
./newfolder/foo_buz_3.jpg
Hoffnung, dass ist das, was Sie suchen.
Vielen Dank für die schnelle Hilfe. Würdest du ein bisschen mehr ausarbeiten? Soll ich dafür eine Batch-Datei erstellen? oder wie man es ausführt? –
Ich habe die Antwort aktualisiert, um ein Shell-Skript einzuschließen. – jedberg