我想复制一个文件夹和所有子文件夹,但我不想复制此目录中的文件内容。
假设我要复制的文件夹是
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
排除 ( ) 不是 ( ) 目录 ( )-
的所有内容的选项!
*/