我想将文件夹复制到另一个文件夹,但我只想要2层深... 我知道我可以做cp -rf ......但是这会复制所有图层......
示例(文件夹名称只是一个示例)
我有 图书/科学/ 1 / EXT 我想复制它,但只有Book / science / 1我不想要第3层,有可能吗?
谢谢。
答案 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 -)