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次)