003. Linux基础三 P2(cp、mv、rename、rm)

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次)
上一篇:STM32 CubeMX 学习:003-定时器 之 基本定时器


下一篇:使用 Redis 如何实现查询附近的人?「视频版」——面试突击 003 期