cp: 复制

Copy

cp命令可以用来复制文件和目录。

1. 命令格式

cp [OPTION] Source Destination
cp [OPTION] Source Directory
cp [OPTION] Source-1 Source-2 Source-3 Source-n Directory

根据参数的个数和类型(文件或目录),cp命令可以在三种模式下执行。

两个文件

如果参数是两个文件,比如:

cp src_file dest_file

那么结果就是将src_file文件中的内容复制到dest_file文件中。如果dest_file不存在,那么就先新建这个文件,然后复制src_file的内容到dest_file中;如果dest_file已经存在,那么就会直接将src_file中的内容复制到dest_file中,且没有提示,所以这个时候需要注意。

一个或多个文件+一个目录

参数里有一个或多个文件,最后是一个目录:

cp src_file1 src_file2 src_file3 dest_dir

这样的话就会将所有的文件复制到目标目录中。如果目标目录中没有同名的文件就新建,有的话就覆盖,所以也需要注意。

两个目录

如果是两个目录:

cp -R src_dir dest_dir

这个时候需要加上-R来指示递归地将src_dir中的文件和目录复制到dest_dir中。

如果dest_dir不存在的话,就创建这个目录,然后将src_dir目录的所有文件复制到这个目录中;如果dest_dir已经存在的话,那么复制后的src_dir目录就是dest_dir的一个子目录了。

2. 示例

这里仅仅介绍一个选项-p:preserve。

加上这个选项之后,复制后的文件会保留复制前文件的所有特性,比如最后修改时间、权限位等。

cp -p src_file dest_file

比如:

$ ll src_file
-rw-r--r-- 1 root root 6 May 11 20:11 src_file
$ cp -p src_file dest_file
$ ll dest_file
-rw-r--r-- 1 root root 6 May 11 20:11 dest_file

不过这需要有root权限。

Last updated