linux下cp⽬录时排除⼀个或者多个⽬录的实现⽅法
说明:/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复制文件到指定目录下
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后⾯的路径不能为绝对路径,必须为相对路径才可以,否则出错。原⽂出⾃www.osyunwei

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论