Дублирование скелета каталога — только папки и имена файлов, но не содержимое файлов

Дублирование скелета каталога — только папки и имена файлов, но не содержимое файлов

Я хочу создать дубликат папки и всех подпапок, но не хочу дублировать содержимое файлов в этом каталоге.

Допустим, я хочу создать дубликат папки

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

Я хочу создать дубликат, похожий на

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

Что бы вы мне посоветовали по этому поводу сделать?

В качестве альтернативы я могу сначала создать обычную копию папки, а затем очистить содержимое каждого файла.

решение1

Вы можете использовать find:

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

Найдите каталог ( -d) в ( src/) и создайте ( mkdir -p) его в dest/или ( -o) найдите файлы ( -f) и touchсоздайте их в dest/.

Это приведет к:

dest/src/<file-structre>

Вы можете подойти mvтворчески к решению этой проблемы.


Другое (частичное) решение можно реализовать с помощью rsync:

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

Хитрость здесь в --filter=RULEопции, которая исключает ( -) все, что не является ( !) каталогом ( */)

Связанный контент