cp: 复制文件和目录
格式: cp SOURCE DEST
说明:
复制文件时,如果目录是目录,则将文件复制到目录下,使用原文件名;如果目标是文件,且文件不存在,则会创建这个文件,将源文件的内容复制到目标文件中; 如果目标是文件且存在,则会提 示是否覆盖
多源复制,指源为多个文件时,指定的目标应该是一个目录, 如果目标目录不存在,则报错
如果目标目录存在,是非目录文件,则报错,如果目标目录存在,是目录文件,则将源复制到这个目录下
选项:
-i: 覆盖之前提醒用户进行确认,有的版本,使用 cp命令时,别名有加-i选项
-f: force 如果目标文件存在,则强制覆盖
-r: recursive,递归复制目录及目录中的内容到目标目录
-d: 在复制符号链接作为符号链接而不是复制它指向的文件,并且保护在副本中原文件之间的硬链接
-a: 复制时,尽可能保持文件的结构和属性,(但不保持目录 结构)等同于-dpR archive,用于实现归档;
–preserv=
mode 权限
ownership 属主属组
timestamps 时间戳
context 安全标签
xattr: 扩展属性
all: 上述所有属性
示例:
1) 使用单源复制时,如果目标是目录,则将文件复制到目录中,不改名; 如果目标是文件,且不存在,则会创建文件,将源文件中的数据流复制到目标文件;如果目标文件存在,则会提示是否覆盖
[root@localhost ~]# cp /etc/fstab /tmp
[root@localhost ~]# cd /tmp
[root@localhost tmp]# ls
fstab ks-script-rDmdoC yum.log
[root@localhost tmp]# cp /etc/fstab /tmp/fstab2
[root@localhost tmp]# cp /etc/fstab /tmp/fstab2
cp:是否覆盖”/tmp/fstab2″?
2) 在CentOS中,cp命令是使用了alias的,默认添加了-i选项,即目标存在时,会提示是否覆盖
3) 使用-r选项,会强制覆盖已经存在的目标文件
[root@localhost tmp]# ls /tmp
fstab passwd
[root@localhost tmp]# cp -r /etc/fstab /tmp
cp:是否覆盖”/tmp/fstab”? n
[root@localhost tmp]# \cp -r /etc/fstab /tmp
4) 带权限复制文件,复制文件时,默认不复制文件的相关属性,使用-a选项,带属性复制。 非管理员不能复制文件的相关属性。
[root@localhost tmp]# cp -a fstab2 fstab3
[root@localhost tmp]# ll
总用量 16
-rw-r–r–. 1 root root 541 12月 10 21:54 fstab
-rw-r–r–. 1 liuqing liuqing 541 12月 10 22:05 fstab2
-rw-r–r–. 1 liuqing liuqing 541 12月 10 22:05 fstab3
-rw-r–r–. 1 root root 1151 12月 10 21:38 passwd
[root@localhost tmp]# cp fstab2 fstab4
[root@localhost tmp]# ll
总用量 20
-rw-r–r–. 1 root root 541 12月 10 21:54 fstab
-rw-r–r–. 1 liuqing liuqing 541 12月 10 22:05 fstab2
-rw-r–r–. 1 liuqing liuqing 541 12月 10 22:05 fstab3
-rw-r–r–. 1 root root 541 12月 10 22:05 fstab4
-rw-r–r–. 1 root root 1151 12月 10 21:38 passwd
rm: 移除文件或者目录
格式: rm [options] file…
选项:
-f: force,在删除时,不出现提示
-i: 进行确认提示,在删除文件时,会提示
-r: 递归地移除目录中的内容
示例:
# 显示/tmp目录下的的文件及目录
[root@localhost ~]# tree /tmp
/tmp
├── a
│ └── b
│ └── c
│ └── d
│ └── e
├── fstab
├── fstab2
├── fstab3
├── fstab4
└── passwd
5 directories, 5 files
# 使用rm不带参数来删除一个目录,显示无法删除
[root@localhost ~]# rm /tmp/a
rm: 无法删除”/tmp/a”: 是一个目录
# 使用fm -rf来强制删除一个目录,且递归进行删除
[root@localhost ~]# rm -rf /tmp/a
[root@localhost ~]# tree /tmp
/tmp
├── fstab
├── fstab2
├── fstab3
├── fstab4
└── passwd