rm
命令用于删除文件和目录。在 Linux 中,删除操作通过 rm
命令直接进行,并且不会像 Windows 系统那样将文件移动到回收站。因此,删除时需要格外谨慎。
基本语法
rm [选项] 文件/目录
常用选项
-i
:删除前进行提示,确认后再删除。-f
:强制删除,忽略不存在的文件,不提示。-r
或-R
:递归删除,用于删除目录及其内容。-d
:仅删除空目录。--preserve-root
:防止误删根目录/
,默认开启。-v
:显示删除过程中的详细信息。
常用实例
1. 删除单个文件
-
删除文件
file.txt
:rm file.txt
这会直接删除文件
file.txt
。 -
删除文件并进行确认:
rm -i file.txt
执行后系统会提示
rm: remove regular file 'file.txt'?
,输入y
确认删除。
2. 强制删除文件
- 忽略不存在的文件并强制删除:
如果文件不存在,rm -f file.txt
-f
选项不会产生错误或提示,直接忽略。
3. 删除多个文件
- 一次删除多个文件:
rm file1.txt file2.txt file3.txt
4. 递归删除目录
-
删除整个目录及其所有内容:
rm -r directory/
这将删除
directory/
及其中所有的文件和子目录。 -
强制删除目录及其内容:
rm -rf directory/
这个命令不会提示确认,直接删除所有内容,包括子目录。
5. 删除空目录
- 仅删除空目录:
如果rm -d empty_dir/
empty_dir
目录是空的,它将被删除。
6. 显示删除过程
-
删除文件并显示详细信息:
rm -v file.txt
输出类似如下信息:
removed 'file.txt'
-
删除目录并显示详细信息:
rm -rv directory/
输出类似如下信息:
removed directory/file1.txt removed directory/file2.txt removed directory/
7. 防止删除根目录
-
默认情况下,
rm
命令不会允许删除根目录/
,这是一种保护机制:rm -rf /
会输出错误信息:
rm: it is dangerous to operate recursively on '/' rm: use --no-preserve-root to override this failsafe
-
如果确实需要删除
/
(极为危险的操作),需要使用--no-preserve-root
选项:rm -rf / --no-preserve-root
注意:该命令将彻底删除系统的根目录,可能导致整个系统不可用。
8. 删除符号链接
- 删除符号链接(不影响原文件):
该命令只删除符号链接,原文件保持不变。rm symlink
总结
rm
是一个非常强大的命令,用于删除文件和目录时需要谨慎使用。特别是在使用递归删除(-r
)和强制删除(-f
)时,删除的内容无法恢复。添加 -i
选项可以在删除前确认,避免误操作。