复制目录骨架 - 仅复制文件夹和文件名,但不复制文件内容

复制目录骨架 - 仅复制文件夹和文件名,但不复制文件内容

我想复制一个文件夹和所有子文件夹,但我不想复制此目录中的文件内容。

假设我要复制的文件夹是

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 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排除 ( ) 不是 ( ) 目录 ( )-的所有内容的选项!*/

相关内容