rm
是 Linux 系统中用于删除文件或目录的命令,功能强大但需谨慎使用(尤其是 -rf
参数)。以下是详细使用方法和注意事项:
rm [选项] 文件或目录名
选项 | 作用 | 示例 |
---|---|---|
-f |
强制删除(忽略不存在的文件,不提示确认) | rm -f file.txt |
-i |
交互式删除(删除前逐一确认) | rm -i *.log |
-r 或 -R |
递归删除目录及其内容 | rm -r mydir/ |
-v |
显示删除过程的详细信息 | rm -v old_*.txt |
-- |
终止选项解析(用于删除以 - 开头的文件) |
rm -- -weirdfile.txt |
删除单个文件
rm file.txt
强制删除(无警告)
rm -f file.txt
递归删除目录(慎用!)
rm -r mydir/ # 会提示确认
rm -rf mydir/ # 强制删除,无提示
交互式删除(适合重要文件)
rm -i *.txt # 删除每个 .txt 文件前询问
删除名称以 -
开头的文件
rm -- -filename # 避免被解析为选项
rm -rf /
或 rm -rf /*
会强制删除根目录下所有文件(系统毁灭性操作),除非在容器或测试环境,绝对不要执行!
通配符误用
rm -rf *.txt # 如果当前目录无 .txt 文件,可能误删其他文件(如 `-f` 存在时)
替代方案:
trash-cli
工具(类似回收站):bash
trash-put file.txt # 可恢复
mv
移到临时目录:bash
mv file.txt /tmp/to_delete/
别名保护:
在 ~/.bashrc
中添加:
alias rm='rm -i' # 默认交互式删除
备份重要数据:
定期备份,避免误删不可逆。
lsof
恢复:bash
lsof | grep deleted # 找到被删除但未释放的文件
extundelete
(仅限 ext3/ext4 文件系统)。总结:rm
是高效但危险的命令,务必确认目标路径,优先使用 -i
或 trash-cli
保护数据。