定义:cp is short for copy, 意为复制文件。用于将文件或目录从一个位置复制到另一个位置。
参数列表预览:

 

用法1:
$  cp  sourceFile  destinationFile
当sourceFile 和 destinationFile 参数都是文件名时,cp 命令将源文件内容复制到一个新文件,该新文件以destinatioFile命名。源文件内容不变。新文件有全新的从创建时间和修改时间。

命令行:

结果:

 
注意:当 destinationFile 已存在时,一般 Linux 系统会提醒用户是否覆盖原有文件。
 

用法2:文件同名拷贝
$  cp  /home/sheepcore/Documents/newfile   /home/sheepcore/Downloads(必须给出绝对文件路径)
命令行:

如果只需复制到当前目录的话,可以做如下简化:

$  cp  /home/sheepcore/Documents/newfile   .
('.' 表示当前文件目录,即为/home/sheepcore/Documents)

 

用法3:
$  cp -p destinationFile newDestnFile
使用 -p (preserve mode) 参数来为目标文件保留源文件的访问时间和修改时间!

命令行:

 

用法4:
$  cp  -R  sourceDir  destinationDir
使用 -R (recursive) 参数递归的复制整个源目录到目标目录中。其功能极其强大!

命令行:

用法5: 使用 cp 指令创建文件的硬链接与软链接

$  cp -l   srcFile  linkedFile (硬链接 -l 表示 link)

$  cp -s  srcFile  linkedFile (软链接 -s 表示 soft)

命令行:

硬链接会创建一个独立文件,其中包括了源文件的信息以及位置。因此,引用硬链接文件等同于引用了源文件。

如上图所示命令行,创建 file 文件的硬链接文件 fileLink,从文件列表可以看出,file 和 fileLink 的索引节点号完全相同,这表明,实际上它们是同一个文件。细心注意一下,-rw-r--r-- 后面的数字 2 表明了,该文件的链接计数,说明当前有两个文件存在了两个链接。

当然,对于不同存储媒体上的文件之间,是不允许创建硬链接的。这个时候就可以使用下面一种方法,通过 -s 来创建软链接。

以下是结果显示:

注意到图中,我标注出来的几点不同:

  1. 软链接文件有一个新的索引节点号;
  2. 软链接文件的文件大小明显小于源文件和硬链接文件;
  3. 软链接文件的链接数上显示为1;而源文件和硬链接文件显示为2?

然后,我简单解释一下这几点不同。创建软链接文件时,Linux 系统把它当做一个单独的文件,所以它有一个唯一的索引号。文件变小的原因是:链接文件只需要存储源文件的信息,比如访问时间、文件大小、地址等,而不会存储源文件的内容,也就是里面的数据。 因为软链接实质上创建了一个新的文件,所以就链接计数为1。

 

补充:
可以使用通配符*, 批量复制有相同名字前缀的文件到一个目录当中!

$  cp -f  file*   destinationDir
-f (force) 强制覆盖已存在的目标文件,不提示!

命令行实例:

 

技巧:可以使用相对路径 . (当前目录)or ..(当前目录的父目录)
$  cp -v  ./file*   ../destinationDir
命令行实例:


缝纫机乐队笛子手
1 声望0 粉丝