linux下cp目录时排除一个或者多个目录的实现方法linux cp目录到指定目录
2022-07-20 20:30:56
网络知识
官方管理员
说明:/home目录里面有data目录,data目录里面有a、b、c、d、e五个目录,现在要把data目录里面除过e目录之外的所有目录拷贝到/bak目录中
方法一:终端命令行下执行以下命令
cp-R`find/home/data-typed-path/home/data/e-prune-o-print|sed1d`/bak
########################################################
脚本实现
脚本存放路径/home/osyunwei.sh
vi/home/osyunwei.sh#编辑脚本,添加下面的代码
#!/bin/sh
cp-R`find/home/data-typed-path/home/data/e-prune-o-print|sed1d`/bak
chmod+x/home/osyunwei.sh#添加脚本执行权限
cd/home#进入脚本存放目录
./osyunwei.sh#执行脚本
########################################################
方法二:使用cp命令复制的时候,只能排除一个目录不被复制,如果想排除两个或者多个目录的话,就需要使用rsync命令来实现了,看下面的例子
如果要排除/home/data目录下面的a、b、c、三个目录,同时拷贝其它所有目录,执行以下命令
yuminstallrsync#安装rsync
rsync-av--excludedata/a--excludedata/b--excludedata/cdata/bak
注意:--exclude后面的路径不能为绝对路径,必须为相对路径才可以,否则出错。
原文出自http://www.osyunwei.com