场景分析

在win环境下,我们经常会对一个文件夹里的部分文件进行修改,而且会新增一部分文件。这个时候我们会用到win自带功能,直接拖拽或者复制粘贴,当有重名的文件夹时,进行覆盖。如下图替换目标中的文件操作
在这里插入图片描述
当然这个操作在linux也可以实现

Linux 命令cp 实现

现在我们有两个文件夹text1,text2
我们希望把text2中的所有文件粘贴到text1中由于文件迭代目录太深了,我们无法一个一个进行移动,那么可以用到下面的命令
cp -frap text1/* text2/

命令其实非常简单,解释下:

-f 强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖)

-r 递归复制,包含目录

-a 做一个备份,这里可以不用这个参数,我们可以先备份整个test目录

-p 保持新文件的属性不变

记住一点就是,实现合并和覆盖是用cp,而不是mv。在Win7下我们粘贴某个文件夹时也可以实现合并以及覆盖的功能,并且系统会提示是否覆盖或者两个同名文件都保存。

Logo

更多推荐