文章插图
说明:/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
【linux下cp目录时怎样排除一个或者多个目录】注意:--exclude后面的路径不能为绝对路径 , 必须为相对路径才可以,否则出错 。
推荐阅读
- 立秋伏天就结束了吗
- linux操作系统上cvs常用命令是那些? linux cvs 命令
- 推荐5本很甜很宠,从开头甜到尾的小说?
- 六万玩家票选王者荣耀“最离不开的装备”,冰心独一档,名刀也不及,你赞同吗?
- 立秋会凉快吗
- 有什么不狗血不白莲的甜宠短篇小说推荐吗?
- 王者荣耀队友乱出装,怎样控制队友出装?
- 一次性口罩会导致面部过敏么
- 梦见拍证件照拍成生活照 梦见拍证件照