复制递归X文件夹深入linux

时间:2014-08-26 19:10:17

标签: linux copy directory

我想将文件夹复制到另一个文件夹,但我只想要2层深... 我知道我可以做cp -rf ......但是这会复制所有图层......

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

我有 图书/科学/ 1 / EXT 我想复制它,但只有Book / science / 1

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

谢谢。

2 个答案:

答案 0 :(得分:2)

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中的结构

它会错过符号链接,而且我对maxdepth和mindepth选项非常不好,所以它们可能会被一个人关闭。

答案 1 :(得分:1)

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

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