Linux 的cp命令
cp
命令很简单,字面的意思,copy的缩写,意指拷贝数据。
官方含义为:
cp - copy files and directories
– 拷贝文件和文件夹。
命令格式
简单的格式如下所示,cp
后面跟上选项,然后是SRC
,最后是DEST
。
1 | $ cp [option]... SOURCE... DIRECTORY |
下面说几个最常用的选项实例。
- -a:保留链接、文件属性,并复制目录下的所有内容,类似于等于dpr参数组合
- -d:复制时保留链接
- -f:覆盖已经存在的目标文件而不给出提示
- -i:与-f选项相反,要求用户确认是否覆盖
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
首先假设有两个文件夹dir1
和dir2
,里面的内容如下所示:
1 | dir1 |
详细信息如下所示:
1 | $ ll * |
cp
最常用的选项如下所示:
i
: 覆盖一个已经存在的文件前,提示用户进行确认r
:递归地复制目录及其内容,复制目录的时候必须使用这个参数u
:只复制不存在或者更新的文件v
:复制文件时,显示复制信息
组合rv - 可以拷贝文件或文件夹
这个在显示复制信息的时候,也可以复制目录
1 | $ cp -rv dir1/* dir2/ |
拷贝时提示确认
这个参数在使用rm的时候已经记得使用,不然就像rm -rf /
一样,一个公司没有了。
1 | $ cp -i dir1/* dir2/ |
这个选项在文件超级多时候,慎用!!
只拷贝不存在或更新的文件
u
表示update
,也就是从一个目录拷贝到另外一个目录时,只会复制那些不存在或者目标目录相应文件的更新文件。
执行下面的命令:
1 | $ cp -u dir1/* dir2/ |
可以得到:
1 | $ ll * |
如何用cp拷贝指定序号的文件
现在有文件夹filename
,内有文档,名字是从1.txt, 2.txt, 3.txt
一直到9999.txt,10000.txt
,现在希望从第N
组数据即N.txt
到第M
组数据M.txt
的文件拷贝到别的文件夹中,方法如下:
1 | $ cp {N..M}.txt newfilename/ |
这个方法可是相当的赞呀(≧▽≦)/,基本可以秒掉大多数的GUI程序了。