Duplizieren eines Verzeichnisskeletts - Nur Ordner und Dateinamen, nicht aber Dateiinhalte

Duplizieren eines Verzeichnisskeletts - Nur Ordner und Dateinamen, nicht aber Dateiinhalte

Ich möchte einen Ordner und alle Unterordner duplizieren, aber nicht den Inhalt der Dateien in diesem Verzeichnis.

Nehmen wir an, der Ordner, den ich duplizieren möchte, ist

Folder0
     Folder00
          File000.x      1GB
          File001.x      500MB
     Folder01
          File010.x      600MB

Ich möchte ein Duplikat erstellen, das wie folgt aussieht:

Folder0
     Folder00
          File000.x      1KB
          File001.x      1KB
     Folder01
          File010.x      1KB

Was würden Sie mir raten, diesbezüglich vorzugehen?

Alternativ kann ich zuerst ein normales Duplikat des Ordners erstellen und dann den Inhalt jeder Datei bereinigen.

Antwort1

Sie können find verwenden:

find src/ -type d -exec mkdir -p dest/{} \; \
       -o -type f -exec touch dest/{} \;

Suche nach Verzeichnissen ( -d) unter ( src/) und erstelle ( mkdir -p) sie unter dest/oder suche ( -o) nach Dateien ( -f) und erstelle ( ) touchsie unter dest/.

Dies führt zu:

dest/src/<file-structre>

Sie können mvdieses Problem kreativ lösen.


Eine andere (Teil-)Lösung kann mit rsync erreicht werden:

rsync -a --filter="-! */" sorce_dir/ target_dir/

Der Trick dabei ist die --filter=RULEOption, die -alles ausschließt ( ), was nicht ( !) ein Verzeichnis ist ( */)

verwandte Informationen