cp(选项)(参数) 复制
当复制多个源文件时,目标必须是个目录。
cp命令默认使用会带上-i选项,当目标已有文件时,会询问用户是否覆盖掉,可以用\cp来取消-i选项
-a:将文件的所有属性都一并复制,用于归档文件。,以后还有归档压缩的命令
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,如果目标文件或目录都存在直接覆盖
[[email protected] admin]# cp -f a/c b/
cp: overwrite `b/c‘? y
强制复制也会提示询问用户是否覆盖,可以用[[email protected] admin]# \cp -f a/c b/
[[email protected] admin]#
-i:如果目标文件或目标目录都存在,询问用户是否覆盖
[[email protected] admin]# cp -i a/c b/
cp: overwrite `b/c‘? y
这也是cp命令默认的方式
[[email protected] admin]# alias cp
alias cp=‘cp -i‘
-l:对源文件建立硬连接,复制源文件的innode号,而非复制文件;
[[email protected] admin]# cp /a a
[[email protected] admin]# cp -l /a aa
[[email protected] admin]# ls -li /a a aa 加上-i显示出文件的inode号
139923 -rwxr-xr-x. 1 root root 0 Dec 22 01:45 a 这个是直接复制过来的文件
12090 -rwxrwxrwx. 2 root root 0 Dec 22 00:55 /a 这货是源文件
12090 -rwxrwxrwx. 2 root root 0 Dec 22 00:55 aa 这个是通过cp -l复制过来的文件
-P:保留源文件或目录的属性;
[[email protected] admin]# cp aa /
[[email protected] admin]# ls -l aa /aa
-rwxrwxrwx. 1 admin admin 0 Dec 22 00:55 aa
-rwxr-xr-x. 1 root root 0 Dec 22 01:13 /aa
以root用户为例,当我复制admin用户家目录下的aa文件到根目录下时,文件的属主和属组变成了root。
[[email protected] admin]# cp -p aa /
cp: overwrite `/aa‘? y
[[email protected] admin]# ls -l aa /aa
-rwxrwxrwx. 1 admin admin 0 Dec 22 00:55 aa
-rwxrwxrwx. 1 admin admin 0 Dec 22 00:55 /aa
当加上-p选项后,复制完成后的文件属主和属组没有发生变化,还是原来的admin
这个-p貌似对原文件属主属组为root的无效???
-R/r:递归处理,将指定目录下的所有文件与子目录一并复制;
[[email protected] admin]# cp -rv b c
`b‘ -> `c/b‘
`b/c‘ -> `c/b/c‘
`b/c/d‘ -> `c/b/c/d‘
`b/c/d/e‘ -> `c/b/c/d/e‘
-s:对源文件建立符号连接,而非复制文件;
[[email protected] admin]# cp -s /a aa
[[email protected] admin]# ls -l aa
lrwxrwxrwx. 1 root root 2 Dec 22 01:32 aa -> /a
-b:覆盖已存在的文件目标前将目标文件备份;
[[email protected] admin]# cp -bv /a a
cp: overwrite `a‘? y
`/a‘ -> `a‘ (backup: `a~‘)
[[email protected] admin]# ls -l a*
-rwxr-xr-x. 1 root root 0 Dec 22 01:42 a
-rwxrwxrwx. 2 root root 0 Dec 22 00:55 a~
-v:显示操作过程
上面都已经显示过了