文章资料-情感.机器.认知-电子AI 游客
linux远程scp,但是不覆盖已经存在文件的方法
【8155】by1 2019-03-01 最后编辑2019-03-09 18:12:22 浏览1372

使用cp命令的-n参数即可跳过相同的文件 ,但scp却没这个参数,如何实现呢?

timgd).jpg

rsync


它比scp更强大,支持“不覆盖”原目录


例子:rsync -avz --progress /root/client/   root@202.112.23.12:/home/work/      


        //将本机的/root/client/拷贝至远程的202.112.23.12:/home/work/目录,--progress可以查看拷贝的过程


例子:rsync -avzu --progress /root/client/   root@202.112.23.12:/home/work/     //u选项,指定不覆盖原目录内容

inux 下文件夹的复制、覆盖以及确认问题解决

项目中有个这样的需求就是在每次编译后将某个文件夹下的文件替换为一个固定文件夹下的文件,如果没有那就直接复制了,但是如果有那就麻烦了,他会一个个问你是否要覆盖,这样是不是很麻烦

-r 是递归的意思,会把问价下的子文件目录都会复制

-f 参数是强制复制,比如你在a文件中有个文件名叫b,然后你把c文件夹里面的另一个文件名叫做b的复制到a里面,这个时候回冲突,然后会提示你要不要继续复制,加上-f就不会提示你了。

直接使用命令实现(推荐)

\cp -rf /www/cmswhd/conf/ /www/cms.manager/core/conf/

看到 只是在命令前加了一个反斜杠(\),这样就不会再次确认了,而且只在命令中起作用比较好

用cp -r /TEST/test1/. /TEST/test2。把test1中的文件夹及文件复制到test2中

也可以用cp -r /test/test1/* /test/test2。得到一样的效果

===============================================================

或者可以使用原生的cp命令
/bin/cp -rf xxxx