Linux拷贝排除一个或多个目录的实现方法

文章目录:

  • 一、用cp命令实现
  • 二、用rsync命令

你有没有想要拷贝某个目录下的很多文件或者目录,但是又偏偏有几个文件你不想要拷贝,有人说可以全部拷贝过去再删除呀,但是关键这几个文件可能很大很大,这个时间成本怎么算呀,好吧,那我们就来一个 “一致对外” 策略!!!


建议采用rsync命令,方便快捷

一、用cp命令实现

/home目录里面有data和photo目录,data目录里面有test1,test2,test3,test4四个目录,现在要把data目录里面除test4目录之外的所有目录拷贝到photo目录中

cp -r find /home/data -type d -path /home/data/test4 -prune -o -print | sed 1d /home/photo

上述命令参数说明:

  1. find /home/data -type d 找出该目录下的文件夹,如果是-type f则是找出该目录下的文件。

  2. 再加上路径选项:-path /home/data/test4表是找出/home/data指定路径下的文件夹。

  3. -prune:使得find命令不进入到当前路径。

  4. -o类似于逻辑或运算,find /home/data -type d -path /home/data/test4 -prune -o -print是find /home/data -type d -path /home/data/test4 -a -prune -o -print的缩写。

其中-a相当于逻辑与&&,-o相当于逻辑或||,上述命令等价于:

if -path “/home/data/e” then

-prune

else

-print

意思就是查找/home/data目录下的文件夹,如果路径是/home/data/e,就执行“-prune”(跳过)操作,如果不是该路径,则执行 “-print”(打印)操作。

  1. sed 1d:通过管道执行该命令,表示上面查找出来的文件列表删除第一行(/home/data),即根目录不需要加进来,否则的话就相当于把所有文件夹进行了拷贝。

二、用rsync命令

ync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync 本来是文件同步备份的工具,相对于普通的 cp 命令,rsync 在控制方面就强多了,而且 rsync 对遍历目录也支持,有 --exclude参数可以忽略指定的文件或文件夹。

/home目录里面有data和photo目录,data目录里面有test1,test2,test3,test4四个目录,现在要把data目录里面除test3和test4目录之外的所有目录拷贝到photo目录中

cd /home/data
rsync -av --exclude  test3/ --exlclude test4/  ../data/  /home/photo

上述命令参数说明:
-a参数表示archive模式(-a 参数已经包含遍历处理参数 -r),-v表示详细链模式输出,-z表示传输文件时使用压缩传输的模式。

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




♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

Linux拷贝排除一个或多个目录的实现方法相关推荐

  1. (转)linux下cp目录时排除一个或者多个目录的实现方法

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

  2. linux下cp复制目录时排除某些目录的方法分享,Linux 下复制(cp)目录时排除一个或者多个目录的方法...

    cp 貌似没有排除目录的功能,可以使用 rsync 命令来实现了,如: [案例] /home/52php目录里面有data目录,data目录里面有 a.b.c.d.e 五个目录,现在要把data目录里 ...

  3. Linux 下复制(cp)目录时排除一个或者多个目录的方法

    cp 貌似没有排除目录的功能,可以使用 rsync 命令来实现了,如: [案例] /home/52php目录里面有data目录,data目录里面有 a.b.c.d.e 五个目录,现在要把data目录里 ...

  4. Linux拷贝文件夹

    参考博文: linux下cp目录时排除一个或者多个目录的方法 1. cp cp -r 和-R功能上是等价的.不加-r或者-R的时候,只拷贝文件,不拷贝文件夹:加上后则会拷贝文件夹--包括下一级的子文件 ...

  5. linux强制移除pdf密码,分享|如何在 Linux 中从一个 PDF 文件中移除密码

    今天,我碰巧分享一个受密码保护的 PDF 文件给我的一个朋友.我知道这个 PDF 文件的密码,但是我不想透露密码.作为代替,我只想移除密码并发送文件给他.我开始在因特网上查找一些简单的方法来从 PDF ...

  6. linux find文件,并复制,通过find命令寻找文件并拷贝到一个指定目录方法详解

    有这样的一个需求,需要将一部分符合条件的文件从一个目录拷贝到另一个目录中,可以通过使用find命令从源目录查找到符合条件的文件然后使用cp命令拷贝到目标目录 将通过find命令找到的文件拷贝到一个新的 ...

  7. linux find 拷贝,通过find命令寻找文件并拷贝到一个指定目录方法详解

    将通过find命令找到的文件拷贝到一个新的目录中 有这样的一个需求,需要将一部分符合条件的文件从一个目录拷贝到另一个目录中,我通过find命令从源目录查找到符合条件的文件然后使用cp命令拷贝到目标目录 ...

  8. 在linux中建立一个vim的目录,Linux学习笔记一(目录结构、Vim编辑器、用户管理)...

    1.Linux介绍 linux是一个开源.免费的操做系统,其稳定性.安全性.处理多并发已经获得 业界的承认,目前不少企业级的项目都会部署到Linux/unix系统上. Linux主要的发行版: Ubu ...

  9. linux 打包排除多个目录,linux tar打包压缩排除某个目录或文件

    linux tar打包压缩排除某个目录或文件 用tar打包时想剔除打包目录中的某个子目录或文件: 比如你想打包/home这个目录,但是/home/www.phpernote.com/目录,/home/ ...

最新文章

  1. 第五届蓝桥杯 c/c++ B组6
  2. 主模式和野蛮模式_网络野蛮行为的含混性和观念
  3. [转] C# TextBox、DataGrideView中的数据绑定
  4. CMU Database Systems - Concurrency Control Theory
  5. spark内核揭秘-06-TaskSceduler启动源码解析初体验
  6. struts教程笔记6
  7. Java算法面试题(005) 求n边形周长的k等分点坐标(今日头条)
  8. 怎么学计算机制作ppt,电脑ppt怎么做
  9. 怎么完全卸载赛门铁克_赛门铁克专用卸载工具
  10. 在创建生成WIFI二维码手机扫码链接
  11. 蒸汽流量计算软件_补偿型涡街流量计
  12. cc2530dma控制器功能_dma控制器是什么_dma控制器工作方式
  13. CN域名海外注册商体系(7)2010年4月2日资料
  14. 【干货】如何有效地提问
  15. 多元线性回归及案例(Python)
  16. C语言变量前面加vol,Volitale
  17. TotalControl之手机录屏神器
  18. 如何有效的解决文件锁定问题
  19. 2017西安网络赛B_Coin
  20. 虚幻4与Unity: 哪个游戏引擎是开发者的最爱?

热门文章

  1. 软件常见故障的现象、故障排除的方法
  2. 《软件测试的艺术》读书笔记 - 1
  3. Visual Studio附加到进程调试
  4. 如何用计算机弹出ink sans,INKSANS模拟器PC
  5. python英文单词及其出现次数-Python读取英文文件并记录每个单词出现次数后降序输出示例...
  6. python编程从入门到实践课后题答案-《Python编程:从入门到实践》课后习题及答案—第11章...
  7. 华为python工程师工资-华为百万年薪抢人工智能应届生,这个高薪行业你如何进入?...
  8. python怎么加载图片-python爬虫--图片懒加载
  9. python好学嘛-马哥教育官网-专业Linux培训班,Python培训机构
  10. arcgis的python脚本-ArcGIS Python脚本使用