用途:复制文件或目录
用法:cp [选项]... [-T] 源文件 目标文件
cp [选项]... 源文件... 目标目录
cp [选项]... -t 目标目录 源文件...
将源文件(目录)复制为目标文件(到目标目录),也可将多个源文件复制到目标目录,上面第二行和第三行的区别仅是源和目标目录顺序的不同,不论目标目录写在前面还是后面,都必须是已存在的目录,否则会报错
单纯靠cp命令无法同时将一个文件复制到多个目录
参数:
-a --archive 等价于 -dpR 最常用的参数
-b --backup 删除、覆盖目的文件前先备份,经实验发现被备份的原目标文件并未删除,只是改名(在后面加了个~),然后创建一个新的采用目标文件原名的文件用来将源文件内容复制过去
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-f --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 交互模式,如果目标文件已存在,覆盖之前先要询问
-H 跟随符号链接,默认配置,如果目标文件为符号链接,源文件的内容将被顺着复制到符号链接所指向的文件
-h 强制符号链接,强制cp命令只复制符号链接,部分linux版本才有
-l 对源文件建立硬链接,而非复制文件
-L 总是跟随符号链接
-P 从不跟随符号链接
-p 保留源文件或目录的属性(mode,所有者,时间戳等)
-c 保留源文件的context
-R -r --recursive 递归复制,将源目录下的所有文件及目录一同处理
-s 对源文件建立符号链接,而非复制文件
-S 修改备份文件后缀符号,配合-b参数使用,-b参数下默认在备份文件后面加上“~”,如果后面再加上-S参数可指定后缀符
-t --target-directory=DIRECTORY 后接目标文件(目录)
-u --update 只在源文件比目标文件新,或目标文件不存在时才进行复制
-v --verbose 详细显示进行的步骤
-x --one-file-system 不会跨越文件系统进行复制操作
-Z --context=CONTEXT set security context of copy to CONTEXT
常用格式:
1.将文件1复制成文件2
cp file1 file2 #如果在同一目录下可已只填文件名,在不同目录下要填绝对路径,如果目标文件file2不存在则自动创建
2.复制多个源文件到目标目录
cp file1 file2 file3 ... /目标目录 #如果cp后面接了两个以上的参数,则最后一个必须是目标目录,否则会报错
3.复制源目录下的所有文件到目标目录
cp /源目录/* /目标目录 # “*”星号代表源目录下的所有文件,该写法也可同时将多个源目录下的文件复制到目标目录
4.复制源目录下的所有文件及目录到目标目录
cp -r /源目录 /目标目录 # 如果源目录下有子目录,不加-r参数会略过该目录
5.终极绝招,复制时保留源文件属性
cp -a file1 file2 # 等价于-dpR
cp -a /源目录 /目标目录 # 同样是递归复制