
Ich habe tar.gz-Dateien zugänglich von
./parent/subfolder/tar_file_folder/*tar.gz
Und ich möchte sie finden und in das Verzeichnis ./parent/ verschieben, also eine Ebene höher. Es gibt jedoch mehrere Unterordner und Tar-Dateiordner. Daher möchte ich meinen Befehl aus den übergeordneten Ordnern aufrufen.
Ich habe diese Befehlszeile ausprobiert:
cd ./parent
find -name '*.tar.gz' -exec mv {} /path/to/single/target/directory \;
Ich bin mir jedoch nicht ganz sicher, wie ich den Pfad zur nächsten Ebene angeben soll. Kann mir jemand helfen?
Zwei Pfadbeispiele, bei denen in diesem Fall die TAR-Dateien entweder in den Ordner ./AU-ASM oder in den Ordner ./AR-Vir/ verschoben werden müssen:
./AU-ASM/[email protected]/LT51030752011211-SC20161014133947.tar.gz
./AR-Vir/[email protected]/LT51030751995263-SC20161014133510.tar.gz’
Und dies ist ein Beispiel, wo die Tar.gz-Dateien gespeichert sind:
./Landsat_Data/AR-Vir/[email protected]/*tar.gz
Die Befehlszeile muss aus dem Verzeichnis ./Landsat_Data/ ausgeführt werden.
Antwort1
Sie können die TAR-Dateien durchlaufen und sie in das übergeordnete Verzeichnis „..“ verschieben, und zwar wie folgt:
for tar in $(find path -name '*.tar.gz'); do mv $tar $(dirname $tar)/..; done