cp命令主要用途是复制文件或者文件夹到某一个固定目录:
参数:
-a:相当于dR命令
--backup:对现有文件进行备份
--copy-contents:递归时复制特殊文件的内容
-d:相当于--no-dereference 不遵循源中的符号链接
-f:如果目标文件不存在,则删除后建立目标文件
-i:覆盖前提示
-H:遵循源中的命令行符号链接
-l:链接文件,不复制
-L:遵循源中的符号链接
-n:不覆盖现有文件
-P:不遵循源中的符号链接
-p:保留文件模式、所有者、时间等属性
--preserve[=ATTR_LIST]:保留指定的属性(default: mode,ownership,timestamps),如果可能则附加:context, links, xattr, all
-c:等同于--preserve=context
--no-preserve=ATTR_LIST:不保留指定属性
--parents:使用目录下的完整源文件名
-R, -r, --recursive:递归
--reflink[=WHEN]:控制文件复制等
--strip-trailing-slashes:删除源参数中任何尾部斜杠
-s:使用符号链接,而不是复制
-S:覆盖通常的备份后缀
-t:将所有源参数复制到目标目录
-T:将目标文件视为正常文件
-u:仅仅复制目标文件中不存在的,或者丢失的
-Z, --context=CONTEXT:set security context of copy to CONTEXT SourceByrd's Weblog-https://note.t4x.org/rebuilding/cp-command-description/
案例:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
[root@localhost abc]# cp -d 3.sh 4.sh #-d则按照默认属性,亦是软连接形式 [root@localhost abc]# ls -l lrwxrwxrwx. 1 root root 9 Oct 9 12:05 3.sh -> /tmp/2.sh lrwxrwxrwx. 1 root root 9 Oct 9 12:06 4.sh -> /tmp/2.sh [root@localhost abc]# cp 3.sh 5.sh #直接拷贝的源文件的内容 相当于cp -H 3.sh 5.sh [root@localhost abc]# cp -H 3.sh 9.sh #直接复制源文件到目标文件 [root@localhost abc]# ls -li total 8 2491824 lrwxrwxrwx. 1 root root 9 Oct 9 12:05 3.sh -> /tmp/2.sh 2491825 lrwxrwxrwx. 1 root root 9 Oct 9 12:06 4.sh -> /tmp/2.sh 2491826 -rw-r--r--. 1 root root 159 Oct 9 12:06 5.sh [root@localhost abc]# \cp -f 1.txt 5.sh #如果目标存在,则删除后重新建立 [root@localhost abc]# cp -l 1.txt 2.txt #链接文件,而不是复制,相同的inode [root@localhost abc]# ls -li 2491823 -rw-r--r--. 2 mysql mysql 0 Oct 9 12:04 1.txt 2491823 -rw-r--r--. 2 mysql mysql 0 Oct 9 12:04 2.txt [root@localhost abc]# cp -L 3.sh 11.sh #复制源文件的内容。而不是软连接形式 [root@localhost abc]# \cp -n 8.sh 1.txt #如果文件1.txt存在,则不覆盖 [root@localhost abc]# cp -P 3.sh 13.sh #等价于cp -d 3.sh 13.sh [root@localhost abc]# cp -p 1.txt 9.txt #保留了文件的模式、属性、时间戳 [root@localhost abc]# ll -rw-r--r--. 2 mysql mysql 0 Oct 9 12:04 1.txt -rw-r--r--. 1 mysql mysql 0 Oct 9 12:04 9.txt [root@localhost abc]# cp -a 1.txt 111111111.txt #-a相当于dR 保留文件属性,且不遵循符号链接 [root@localhost abc]# ll -rw-r--r--. 1 mysql mysql 0 Oct 9 12:04 111111111.txt -rw-r--r--. 2 mysql mysql 0 Oct 9 12:04 1.txt [root@localhost abc]# touch 1 2 3 4 [root@localhost abc]# cp 1 2 dir/ [root@localhost abc]# cp -u * dir/ cp: omitting directory `dir' [root@localhost abc]# ls -l dir/ total 0 -rw-r--r--. 1 root root 0 Oct 9 12:34 1 -rw-r--r--. 1 root root 0 Oct 9 12:34 2 -rw-r--r--. 1 root root 0 Oct 9 12:34 3 -rw-r--r--. 1 root root 0 Oct 9 12:34 4 |