定义: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?
然后,我简单解释一下这几点不同。创建软链接文件时,Linux 系统把它当做一个单独的文件,所以它有一个唯一的索引号。文件变小的原因是:链接文件只需要存储源文件的信息,比如访问时间、文件大小、地址等,而不会存储源文件的内容,也就是里面的数据。 因为软链接实质上创建了一个新的文件,所以就链接计数为1。
补充:
可以使用通配符*, 批量复制有相同名字前缀的文件到一个目录当中!
$ cp -f file* destinationDir
-f (force) 强制覆盖已存在的目标文件,不提示!
命令行实例:
技巧:可以使用相对路径 . (当前目录)or ..(当前目录的父目录)
$ cp -v ./file* ../destinationDir
命令行实例:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。