cp命令:copy
源文件:目录文件
单源复制: cp [OPTION]... [-T] SOURCE DEST
如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中
列如: 把dir1目录file1文件复制到dir2目录上,dir2目录没有文件,当把dir1目录file1复制成dir2目录file2文件时,因为没有file2文件,所以先创建file2文件,再把数据复制到file2文件里
如果DEST存在:如果DEST是非目录文件:则覆盖目标文件
列如: 把dir1目录file1文件内容复制到dir2目录上的file2文件里,因为dir2目录上有file2文件,所以直接把file2的内容覆盖掉,变成file1文件的内容
如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流
列如:dir2目录现在只有file2文件,当把dir1目录file1文件复制到dir2目录时,再看dir2目录有个file1文件
多源复制 cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
命令解释: cp 是命令 ,OPTION 是cp命令选项,后面有三点代表可以有多个选项, SOURCE是源文件,也是可以有多个, DIRECTORY 是目标,可以是文件也可以是目录,只能有一个目标
如果DEST不存在:错误
列如:dir1目录分别有两个文件,file1和file2,现在把dir1两个文件同时负责到dir4目录上,dir4目录是不存在的,所以我们操作时提示错误
如果DEST存在:
如果DEST是非目录文件:错误
列如:把dir1上的file1和file2复制到file3文件,因为目标file3是文件,所有操作时提示错误
如果DEST是目录文件: 分别复制每个文件至目标目录中,并保持原名
列如:把dir1目录file1和file2文件复制到dir2目录上,dir目录开始是没有文件的,当复制完后再用ls命令看,dir2目录已经有file1和file2文件了
命令解释: cp /tmp/dir1/{file1,file2} /tmp/dir2
/tmp/dir1{file1,file2} 是两个文件,代表/tmp/dir1目录下的file1和file2文件, /tmp/dir2是目标目录,要把源文件复制到所在目录
常用选项:
-i: 交互式复制,即覆盖之前提醒用户确认
-f: 强制覆盖目标文件,即不提示直接复制,有时候系统默认有别名 cp=cp i 这时候要把别名取消才能强制复制,
-r: 递归复制目录
-d: 复制符号链接文件本身,而非其指向的源文件
-a: 用于实现归档:所有属性都会被复制过去,和--preserv=all一样效果
--preserv=
mode: 权限
ownership: 属主和属组
timestamps: 时间戳
context: 安全标签
xattr: 扩展属性
links: 符号链接
all: 上述所有属性