linux下cp目录时排除一个或者多个目录的实现方法

2025-05-27 0 52

说明:/home目录里面有data目录data目录里面有a、b、c、d、e五个目录,现在要把data目录里面除过e目录之外的所有目录拷贝到/bak目录

方法一:终端命令行下执行以下命令


cp -R `find /home/data -type d -path /home/data/e -prune -o -print | sed 1d ` /bak

########################################################

脚本实现

脚本存放路径/home/osyunwei.sh

vi /home/osyunwei.sh #编辑脚本,添加下面的代码

#!/bin/sh

cp -R `find /home/data -type d -path /home/data/e -prune -o -print | sed 1d ` /bak

chmod +x /home/osyunwei.sh #添加脚本执行权限

cd /home #进入脚本存放目录

./osyunwei.sh #执行脚本

########################################################

方法二:使用cp命令复制的时候,只能排除一个目录不被复制,如果想排除两个或者多个目录的话,就需要使用rsync命令来实现了,看下面的例子


如果要排除/home/data目录下面的a、b、c、三个目录,同时拷贝其它所有目录,执行以下命令

yum install rsync #安装rsync

rsync -av –exclude data/a –exclude data/b –exclude data/c data /bak


注意:–exclude后面的路径不能为绝对路径,必须为相对路径才可以,否则出错。

原文出自http://www.osyunwei.com

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 linux下cp目录时排除一个或者多个目录的实现方法 https://www.kuaiidc.com/64830.html

相关文章

发表评论
暂无评论