递归复制X文件夹深度linux



我想把一个文件夹复制到另一个文件夹,但我只想要两层深。。我知道我可以做cp-rf。。。但这将复制所有层。。。

示例(文件夹名称只是一个示例)

我有书籍/科学/1/ext我想复制它,但只有图书/科学/1

我不想要第三层,有可能吗?

谢谢。

Elliot的答案对我来说很有效,但它是一个中间档案。如果你想在没有命令的情况下完成它:

find src-dir/ -maxdepth 2 -type d -exec mkdir -p dest_dir/{} ;
find src_dir/ -maxdepth 3 -type f -exec cp {} dest_dir/{} ;

将在dest_dir下重新创建目录结构,然后在src_dir中查找深度小于三级的所有文件,并将它们复制到dest_dir中的结构中(注意两个命令中dest_dir后面的/{})。

它会错过符号链接,我真的不擅长maxdepth和mindepth选项,所以它们可能会一个接一个。

是的,这里有一种可能的方法,使用find和tar以块的方式执行复制,并保持目录结构

find . -maxdepth 3 | grep -v "^.$" | xargs tar cfp - | 
    (cd /destination_folder ; tar xvvf -)

最新更新