MENU

Linux rm 命令详解

rm (remove),是一个基本的 UNIX 命令,在 Linux 系统中是一个非常重要的命令,用于删除文件或目录。同时这也是一个应谨慎使用的命令,错误的使用此命令可能会删除重要的文件和数据。要使用 rm 删除文件,用户不需要具有读取/写入权限,但是必须有该文件上级目录的写入权限。在 Linux 中删除文件或目录不像 Windows 那样简单,因为一旦删除文件,它不会进入回收站而是完全删除,之后要想恢复非常困难的。

下面就详细介绍下rm命令以及在删除文件或目录时应该如何选择合适的参数。

rm 命令语法

默认情况下,rm命令无需确认即可删除文件。一旦删除文件,文件或目录的内容将无法恢复。出于这个原因,在使用该命令时要格外小心,以避免出现不可挽回的损失。

rm 命令的一般语法为:

rm [OPTION] [FILENAME]...

rm 命令参数

  • -f, --force: 在没有确认删除提示的下删除文件并忽略不存在的文件和参数
  • -i: 删除文件前提示确认
  • -I: 在删除三个以上的文件或递归删除文件之前提示确认,与 -i 选项相比,侵入性较小,同时提供防止频繁错误的保护。
  • -interactive [=WHEN]: 根据指定的 WHEN 进行确认提示:never,once (-I),always (-i),如果此参数不加 WHEN 则总是提示
  • --one-file-system: 递归删除一个层级时,跳过所有不符合命令行参数的文件系统上的文件
  • --no-preserve-root: 不对根目录 ‘/’ 进行任何特殊处理
  • --preserve-root [=all]: 不对根目录 ‘/’ 进行递归操作(默认启用)
  • -r, -R, -recursive: 以递归方式删除目录及其内容
  • -d, --dir: 不使用 -r/-R/-recursive 删除空目录,rm -dir等同于rmdir
  • -v, --verbose: 显示正在进行的步骤
  • --help: 显示可用的命令选项
  • --version: 输出 rm 命令的版本信息

可以输入rm --help查看所有帮助信息:
0061-1

删除一个文件

要删除一个文件,直接在rm后面加上你要删除的文件名:

rm filename

执行后会发生了下面两种情况中的一个:

  • 如果你没有父目录的权限,将会输出 “Operation not permitted” 错误;
  • 如果没有写入保护,文件将被直接删除并且没有提示。

强制删除文件

使用-f参数允许用户无需确认即可删除写保护的文件:

rm -f filename

注意:-f参数不适用于写保护的目录。

删除多个文件

要删除多个文件,直接在rm后面加上你要删除的所有的文件名,用空格隔开即可:

rm atp1.txt atp2.txt atp3.txt

还可以使用 ‘*’ 任意匹配,例如用上面的命令可以写为:

rm atp*.txt

0061-2

同样的,如果要删除该目录下所有.txt文件:

rm *.txt

删除目录

rm命令可用于删除目录,但是我们使用两种不同的方法来删除空目录和非空目录。

删除空目录
要删除空目录,可以使用-d参数(等同于rmdir命令):

rm -d dirname

删除非空目录
要删除非空目录及其内容,需要使用-r参数:

rm -r dirname

删除文件前确认提示

-i参数用于在删除文件之前要求确认。此时需要按下y键确认或者n键取消:

rm -i filename

删除多个文件或目录时,-i参数可以派上用场,在删除每个文件之前提示确认,例如:

rm -i atp*.txt

0061-3

如果删除三个以上的文件,只想要提示一次,可以使用-I参数,将只会确认被删除的文件数,例如:

rm -I atp1.txt atp2.txt atp3.txt atp4.txt

0061-4

输出删除过程/结果

rm 命令通常以静默方式删除文件,如果你想知道每个文件删除的过程,可以使用-v参数,例如:

rm -v atp1.txt atp2.txt atp3.txt

0061-5

删除的文件名中包含特殊字符

文件名包含空格
删除包含空格的文件时,有两种方式:

  1. 将文件名用引号括起来:

    rm -i 'filename with spaces'
  2. .使用反斜杠转义每个空格:

    rm -i filename\ with\ spaces

文件名以破折号开头
因为rm会将 ‘-’ 识别为一个参数,所以删除以破折号开头的文件时需要注意一下,有两种方法:

有两种方法可以做到这一点:

  1. 前面加上双破折号:

    rm -- -filename
  2. 加上文件的路径:

    rm /home/-filename

注意:不推荐创建文件/目录的名称中包含特殊字符或空格。

本文转载自:https://atpx.com/blog/rm-command-in-linux/

你不知道的工具 你不知道的导航

若浏览器无法打开文章或视频,请更换使用 [Chrome/Fierfox/Opera/Alook] 等浏览器
无法打开请更换 浏览器 或更换 网络 DNS,被劫持通常是你的网络DNS被劫持污染
若网络无法打开文章或视频,请切换 (电信数据网络运营商) 或 (WIFI),或更改网络DNS(自行百度)

Archives QR Code
QR Code for this page
Tipping QR Code