cp
cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录。
cp [选项] 源文件 目标文件
选项
-a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
-i:询问,如果目标文件已经存在,则会询问是否覆盖;
-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
-s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
-r:递归复制,用于复制目录;
-u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。
案例
1. 复制单个文件到目标目录
# 文件在目标文件中不存在时,直接复制过去。
# 在没有带-a参数时,两个文件的时间是不一样的。
# 在带了-a参数时,两个文件的时间是一致的。
# 目标文件存在时,会询问是否覆盖。
# 这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
cp file.txt dir1
2.复制整个目录
# 目标目录存在时,整个源目录被复制到目标目录里面。
# 目标目录不存在时,会创建该目录,将整个源目录下的所有文件复制到目标目录里面。
cp -a dir1 dir2
多个复制
# 同时复制dir 目录下的a, b, c 目录到 aa目录下的1目录下
cp -a dir/a dir/b dir/c aa/1
cp -a dir/{a,b.c} aa/a