Linux 文件管理:Linux cp 命令(复制文件) 0 个改进

cp 命令是拷贝(copy)的意思,用于将文件或目录复制一份。

在当前目录下拷贝一个文件的语法,

cp <existing file name> <new file name>  
# cp <欲拷贝现存文件的文件名> <新文件名>

Linux File cp

如上截图所示,想要创建一个名为 docu 文件的副本并且命名为 newdocu,使用 $ cp docu newdocu 命令。若指定文件(例子中是 newdocu)已存在,存在的文件将被覆盖。


拷贝文件到不同的目录

一定要在命令中指定拷贝到的目标目录。

如下截图图示中,之前在 /home/sssit/Desktop 目录下并没有 text 文件。图示命令执行后,text 文件就被拷贝到指定目录下了。

Linux File cp


cp 命令选项

选项 功能说明
cp -r 拷贝目录及其子目录。 r 是递归的意思。
cp file1 file2 directoryname 拷贝多个文件或目录到指定目标目录。
cp -backup 拷贝现存文件为同名备份文件。
cp -i 交互式确认拷贝文件。
cp -l 创建文件硬链接代替实际拷贝文件。
cp -p 保留文件属性。p 这里是 Preserves 的意思。
cp -u -v 保证拷贝源文件比被覆盖同名文件要新。

cp 命令 -r 选项

-r 命令选项,用于拷贝包含(多层)子目录的目录被递归地完全拷贝到目标目录下。

语法:

cp -r <sourceDirectory> <destinationDirectory>  
# cp -r <源目录> <目标目录>

举例:

$ cp -r library /home/sssit/Documents  

linux cp -r

如上截图例示,拷贝 library 整个目录内容到 /home/sssit/Documents 目录下。 library 的所有内容及其目录树都被递归地拷贝到 Documents 目录下。

拷贝多个文件或目录

多个文件或目录可一次性拷贝到指定目标目录。这种情况下,目标目录一定是一个目录。拷贝多文件或目录可利用 通配符 ,例如 cp *.txt 等命令。(注:与 windows 下的概念相同,*? 是通配符,读者自查其含义)

语法:

cp *.<extension> <destinationDirectory>  

举例:

$ cp *.txt /home/sssit/Documents  

Linux copy multiple files

上图例子中,拷贝具有相同后缀名的文件 (file1,file2,file3)到指定目录下。

cp 命令 --backup 选项

若拷贝的文件在目标目录下已存在同名文件,可使用此命令生成同名备份文件。

语法:

cp --backup <filename> <destinationDirectory>  

举例:

$ cp --backup file2.txt /home/sssit/Downloads  

Linux file cp backup

上图中可看出,file2.txt 在目标目录中已存在,因此,通过此命令创建欲拷贝文件的备份文件放到目标目录,与已存在文件名相同。

现在,目标目录 Downloads 下有两个同名文件 (file2.txt)。

cp 命令 -i 选项

cp -i 命令选项,当覆盖已存在文件时,向用户询问。(注:命令行中 cp 命令默认是覆盖文件)

语法:

cp -i <filename> <destinationDirectory>  

举例:

$ cp -i file3.txt /home/sssit/Desktop  

Linux cp -i

如上可见,由于 file3.txt 文件已存在目标目录,系统会询问用户是否覆盖?这时,若回答 y 就覆盖文件,回答 n 就不覆盖已有文件。

cp 命令 -l 选项

如果只是创建文件硬链接,而不拷贝。可以使用此选项 -l

注: 硬链接意味着2个文件的 inode 值相同。若是拷贝文件, inode 值不同。

语法:

cp -l <filename> <destinationDirectory>  

举例:

$ cp -l file1.txt usr/  

Linux file cp -l

注意这里我们在 usr 目录下创建 file1.txt 的硬链接,2个文件的 inode 值相同。(图中的 659160)。

cp 命令 -p 选项

cp -p 命令用于拷贝文件时保留文件的属性和特性,也可指定哪些属性或特性需要保留。

语法:

cp -p <filename> <destinationDirectory>  

举例:

$ cp -p file2.txt usr/  

Linux cp -p

在上图中可看到2个文件具有相同的属性和特性(访问权限、修改时间等)。

cp 命令 -u 和 -v 选项

cp -u -v 命令用于拷贝时,用户能看出哪些文件缺失或不存在。

语法:

cp -u -v <filenames> <destinationDirectory>  

举例:

$ cp -u -v docc file1.txt /home/sssit/Downloads/  

Linux cp -u -v

如上例截图所示,在 imp 目录下有2个文件 doccfile1.txt 。把它们拷贝到 Download 目录中。但在 Download 目录下已存在 file1.txt 文件。

使用 cp -u -v 命令可看见只拷贝了 docc 文件,而 file1.txt 未拷贝,目标目录中原有同名文件未被覆盖。(译注:关于 -u-v 选项含义,自行看手册研究。-v 是探查的意思--运行中显示每步骤信息--,-u 是更新的意思,覆盖时检查是否原始文件更新才覆盖)

这个命令用于拷贝大文件。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!