小知识:Linux 用cp和rsync同步文件时跳过指定目录的方法

需求是:某测试站点,在某个节点的时候需要同步到正式站点去,但是里面的config目录不能覆盖,

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

-R `find /projectA -type d -path /projectA/common/config -prune -o -print | sed 1d ` /projectB/

方法二:

localhost # find projectB/ommon/config | xargs touch 修改目标目录的congfig目录文件的access time到当前,这样cp的时候加update参数可以避开该目录

localhost # cp -r -u -v projectA/* projectB/ 这样不会复不复制projectA下面第一级的隐藏目录,但是二级三级的还是会复制过去

所以适用于没有隐藏目录的情况下,比较方便.

但是我们的项目因为牵涉SVN什么的,所以会有很多隐藏目录包含版本控制信息,就会很乱,所以有了第二种方案

方法三: rsync

-vauP –exclude=”.*“ –exclude=”common/config“ projectA/ projectB

简单注释下

-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;

-P 传输进度;

-v 冗余模式,查看到文件列表等

-u update模式,如果目标文件新于源文件,则跳过

第一个exclude表示跳过所有.开头的隐藏文件

第二个表示调过projectA/common/config目录,因为config目录下的文件,轻易不需改变,如果需要手动调整即可,注意这个参数是后面SRC参数的相对路径
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:聊聊Linux 安装Hadoop和Hbase

2023-5-5 5:32:23

建站知识

小知识:linux大于2T的磁盘使用GPT分区的方法分享

2023-5-5 5:48:52

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索