Wie kann ich Ordner/Dateien aus Verzeichnissen kopieren und dabei die Ordnernamen beibehalten?

Wie kann ich Ordner/Dateien aus Verzeichnissen kopieren und dabei die Ordnernamen beibehalten?

Wie kann ich die Bildordner aus allen Verzeichnissen Case-r20-c020-t001-da1, d. h. ..., Case-r20-c020-t001-danin einen neuen Pfad kopieren und dabei die ursprünglichen Verzeichnisnamen beibehalten, z. B. Case-r20-c020-t001-da1... Case-r20-c020-t001-dan? Nehmen wir an, ich habe eine Verzeichnisstruktur wie unten dargestellt:

Case-r20-c020-t001-da1/
  |____image/          <<<< This is a folder that has some pictures
        |______ jpg     
        |______ png

  |____infromation/     <<<< This is a folder.
        |_______ text1.txt 
        |_______ text2.txt 

  |____ file1.txt

Case-r20-c020-t001-da2/
  |____image/
        |______ jpg 
        |______ png

  |____infromation/
        |_______ text1.txt 
        |_______ text2.txt 

  |____ file1.txt

: .

Case-r20-c020-t001-dan/  <<< n goes from 3,...20.
  |____image/
        |______ jpg
        |______ png

  |____infromation/
        |_______ text1.txt 
        |_______ text2.txt

  |____ file1.txt

Mein erster Versuch ist wie folgt;

for f in Case-r20-c020-t001-da*;do (cp -r images /path/folder*);done

Ich möchte also das Obige in ein neues Verzeichnis kopieren und die Ausgabe soll wie folgt aussehen:

Case-r20-c020-t001-da1_images/
  |____image/          
        |______ jpg     
        |______ png

Case-r20-c020-t001-da2_images/
  |____image/
        |______ jpg 
        |______ png

: .

Case-r20-c020-t001-dan_images/
  |____image/
        |______ jpg
        |______ png

Ich bevorzuge es, ein Einzelkommando zu sein.

Jede Hilfe wäre willkommen.

Danke,

Antwort1

Als kleines Skript wäre das klarer, hier ist es jedoch als ein Befehl geschrieben. Der Übersichtlichkeit halber ist es in zwei Zeilen aufgeteilt: Entfernen Sie den Backslash, wenn Sie die Zeilen zusammenfügen möchten.

for old in /old/path/Case-r20-c020-t001-da*; \
do new="/new/path/$(basename $old)_images"; mkdir -p "$new" && cp -r "$old/image" "$new/"; done

verwandte Informationen