Linux-在shell编程中cp -r 略过某个子目录的问题

Linux-在shell编程中cp -r 略过某个子目录的问题

虐人心 发布于 2016-12-12 字数 127 浏览 1171 回复 4

现在需要对一个目录进行备份,但是该目录下有一个子目录非常大,因此不想备份它,求一个简单的命令行来实现它,大家分享一下吧。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

甜柠檬 2017-10-05 4 楼

find 目录 ( -path 避开的目录1 -o -path 避开的目录1 ..... ) -prune -exec cp -r {} ;

灵芸 2017-02-26 3 楼

经过测试,这条shell可以完成本功能:
find /root/data -type f |grep -v "attachment" | xargs cp -ar --target-directory=/root/backup --parents
即将/root/data目录下除attachment目录外的所有文件备份至/root/backup目录

虐人心 2017-01-21 2 楼

ls | grep -v "排除目录" | xargs -i cp -a {} "目标目录"

泛泛之交 2017-01-09 1 楼

为什么不用rsync呢,rsync -rv -exclude-from 或者rsync -rv -exclude。

一定要用cp的话,试一下(slackware13.1测试通过):
首先保证源目录和目标目录的目录结构相同,之后拷贝文件

find . -type d -exec mkdir -p -- 目标目录/{} ;
find . -type f -not -iname '*/排除的目录/*' -exec cp '{}' '目标目录/{}' ;