1 复制文件&文件夹
cp
常用选项
- -i 如果目标已存在,覆盖前提示是否覆盖,一般默认
[root@centos7 dir1]# alias cp
alias cp='cp -i'
- -n 不覆盖,注意两者顺序
- -r, -R 递归复制目录及内部的所有内容
- -a 归档,相当于-dR --preserv=all,常用于备份功能
- -d --no-dereference --preserv=links 不复制原文件,只复制链接名
- --preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
all - -p 等同--preserv=mode,ownership,timestamp
- -v --verbose #可视
- -f --force
- -u --update 只复制源比目标更新文件或目标不存在的文件 -b 目标存在,覆盖前先备份,默认形式为 filename~ ,只保留最近的一个备份
- --backup=numbered 目标存在,覆盖前先备份加数字后缀,形式为 filename.~#~ ,可以保留多 个版本
[root@centos7 dir1]# cp --backup=numbered z x cp:是否覆盖"x"? y [root@centos7 dir1]# ll x* -rw-r--r--. 1 root root 0 11月 8 22:41 x -rw-r--r--. 1 root root 0 11月 8 21:52 x.~1~ -rw-r--r--. 1 root root 0 11月 8 22:41 x.~2~ -rw-r--r--. 1 root root 0 11月 8 22:41 x.~3~
- -b 备份,只能备份一次
[root@centos7 dir1]# cp -b a z cp:是否覆盖"z"? y [root@centos7 dir1]# ll z* -rw-r--r--. 1 root root 0 11月 8 22:39 z -rw-r--r--. 1 root root 0 11月 8 22:35 z~
练习
1)每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY- mm-dd,备份过程可见
cp -av /etc/ /data/backup`date +%F`
2)创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
cp -a /root /data/rootdir
2 移动和重命名文件
mv
mv 命令可以实现文件或目录的移动和改名
同一分区移动数据,速度很快:数据位置没有变化
不同分区移动数据,速度相对慢:数据位置发生了变化
常用选项
- -i 交互式
- -f 强制
- -b 目标存在,覆盖前先备份
rename
可以批量修改文件名
rename 'conf' 'conf.bak' #为所有的conf文件加上.bak后缀:
rename '.bak' '' *.bak #去掉所有的bak后缀:
f*
3 删除文件
rm
使用 rm 命令可以删除文件
注意:此命令非常危险,慎重使用,建议使用mv 代替 rm
常用选项
- -i 交互式
- -f 强制
- -r 递归
- --no-preserve-root 删根*** 慎用
rm虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用shred安 全删除文件
shred
常见选项:
- -z 最后一次覆盖添加0,以隐藏覆盖操作
- -v 能够显示操作进度
- -u 覆盖后截断并删除文件
- -n # 指定覆盖文件内容的次数(默认值是3次)