Skip to main content

Linux 核心命令

文件和目录管理命令 rm

rm 命令是 Linux 中用来删除文件或目录的工具,全称是 remove。它简单但功能强大,用得好能帮你快速清理不需要的文件。

1. 基本用法

rm 的基本语法是:

rm [选项] 文件或目录...
  • 选项:控制 rm 行为的一些参数,比如强制删除或删除目录。
  • 文件或目录:你要删除的目标,可以是一个文件、多个文件,甚至是目录。

最简单的用法,删除一个文件:

rm file.txt

这会直接把 file.txt 删除。如果文件不存在,rm 会报错:

rm: cannot remove 'file.txt': No such file or directory

2. 删除多个文件

你可以一次删除多个文件,只需在命令后面列出所有文件名,用空格分开:

rm file1.txt file2.txt file3.txt

这会把 file1.txtfile2.txtfile3.txt 都删掉。注意,文件名之间用空格隔开,别用逗号或其他符号。

3. 使用通配符

Linux 允许用通配符(*?)来匹配文件,比如:

  • 删除当前目录下所有 .txt 文件:
rm *.txt
  • 删除以 log 开头的文件:
rm log*
  • 删除 5 个字符长度的文件(? 匹配单个字符):
rm ?????

小心:通配符很强大,但也容易误删。运行前可以用 ls 配合相同通配符检查一下,比如:

ls *.txt

这能帮你确认哪些文件会被删。

4. 删除目录

默认情况下,rm 不能直接删除目录,会提示:

rm: cannot remove 'mydir': Is a directory

想删目录,得加上 -r(或 --recursive)选项,意思是递归删除目录及其内容:

rm -r mydir

这会把 mydir 以及里面的所有文件和子目录都删掉。

注意-r 是个危险选项,因为它会把目录里所有东西都删,删之前一定要确认目录里没重要文件!

5. 强制删除

有时候,删除文件时系统会提示你确认,比如文件是只读的。为了跳过这些提示,可以用 -f(或 --force)选项:

rm -f file.txt

-f 会强制删除,不提示,直接干掉文件。结合 -r,可以强制删除目录:

rm -rf mydir

警告rm -rf 是 Linux 中最危险的命令之一,尤其是用在像 / 这样的路径时,可能毁掉整个系统。永远不要随便运行 rm -rf / 或类似命令!

6. 交互式删除

如果你怕误删,可以用 -i(或 --interactive)选项,让 rm 在删每个文件前都问你:

rm -i file.txt

系统会提示:

rm: remove regular file 'file.txt'?

输入 y 确认删除,n 取消。删除多个文件或目录时,-i 会逐个询问,适合小心操作时使用。

还有个更严格的选项 -I(大写),它只在删除超过 3 个文件或递归删除时提示一次,适合批量操作但不想逐个确认:

rm -I *.txt

7. 防止误删的小技巧

rm 删东西是永久删除,不会进回收站,所以要格外小心。以下是一些实用技巧:

  • echo 检查:在用通配符时,先用 echo 看看会删哪些文件:
echo rm *.txt

这不会真的删除,只是显示会被删的文件。

  • mv 代替删除:把文件移到临时目录,确认没问题再删:
mv file.txt /tmp
  • 创建别名:在 ~/.bashrc 里加个别名,让 rm 默认带 -i
alias rm='rm -i'

加了之后,每次用 rm 都会提示,防止误删。

8. 其他选项

rm 还有一些不常用的选项,了解一下有备无患:

  • -v(或 --verbose:显示删除过程的详细信息:
rm -v file.txt

输出:

removed 'file.txt'
  • --one-file-system:递归删除时,只删同一文件系统上的内容,跨文件系统的不删。适合备份或挂载点多的场景:
rm -r --one-file-system mydir
  • 清理日志文件:比如删掉超过 7 天的日志:
find . -name "*.log" -mtime +7 -exec rm -v {} \;

这里用 find 配合 rm,可以按条件删除。

9. 注意事项

  • 没有回收站:Linux 的 rm 删了就是真删了,恢复非常困难。重要文件建议先备份。
  • 权限问题:删除需要相应权限,没权限会报错:
rm: cannot remove 'file.txt': Permission denied

可以用 sudo rm 提升权限,但要确认你在干啥。

  • 小心通配符:像 rm -rf * 这样的命令会删当前目录所有内容,运行前三思。
  • 日志记录:如果要记录删了啥,结合 -v 和重定向:
rm -v *.txt > delete_log.txt