菜鸟科技网

mac rm命令如何安全删除文件?

rm 是 "remove"(移除)的缩写,是 Linux 和 macOS 系统中一个基础且强大的命令,用于删除文件或目录。由于删除操作通常是不可逆的,rm 被认为是一个“危险”的命令,使用时需要格外小心。

mac rm命令如何安全删除文件?-图1
(图片来源网络,侵删)

基本用法

删除文件

这是最简单的用法,直接跟上文件名即可。

# 删除一个名为 test.txt 的文件
rm test.txt

注意:执行这个命令后,系统会直接删除文件,不会有任何确认提示,文件也不会被移到“废纸篓”(Trash Bin)。

删除目录(文件夹)

直接使用 rm 命令删除目录会失败,并提示 is a directory(是一个目录)。

# 尝试删除一个名为 my_folder 的目录,会报错
rm my_folder
# 输出:rm: my_folder: is a directory

要删除目录,你需要使用 -r-R 选项(代表 "recursive",递归)。

mac rm命令如何安全删除文件?-图2
(图片来源网络,侵删)
# 递归地删除 my_folder 目录及其内部所有内容
rm -r my_folder

删除多个文件或目录

你可以一次性删除多个项目,只需将它们的名称用空格隔开。

# 删除 file1.txt, file2.log, 和 my_folder 目录
rm -r file1.txt file2.log my_folder

重要选项(Flags)

rm 命令的强大和危险之处在于它的各种选项。

选项 全称 作用 示例
-i --interactive=once 交互式删除,在删除每个文件之前,都会提示你确认(输入 yn)。强烈推荐新手使用! rm -i test.txt
-f --force 强制删除,忽略不存在的文件,并禁止所有提示,当你确定要删除且不想看到任何确认信息时非常有用。 rm -f file.txt
-r --recursive 递归删除,用于删除目录以及目录下的所有内容。 rm -r my_folder
-v --verbose 详细模式,显示正在删除的文件列表。 rm -v file1.txt file2.txt
-d --dir 只删除空目录。 rm -d empty_folder

常用组合与示例

安全删除:rm -i

这是最安全的用法,系统会为你确认每一步操作。

# 删除目录前,会一个一个地询问你是否要删除
rm -r -i my_folder
# 输出:
# rm: descend into directory 'my_folder'? y
# rm: remove regular empty file 'my_folder/file1.txt'? y
# rm: remove regular empty file 'my_folder/file2.txt'? y
# rm: remove directory 'my_folder'? y

强制删除:rm -f

当你知道某个文件不存在,但不想看到错误提示时,或者你想绕过 -i 的保护时使用。

mac rm命令如何安全删除文件?-图3
(图片来源网络,侵删)
# file.txt 不存在,rm file.txt 会报错,但 rm -f file.txt 不会
rm -f file.txt

最危险的组合:rm -rf

-rf-r-f 的组合,意思是“递归地、强制地删除”。

  • 递归 (-r):删除目录及其所有内容。
  • 强制 (-f):不进行任何确认,忽略所有错误。

这个组合可以删除任何东西,一旦执行,无法恢复。请务必在执行前确认你的路径是正确的!

# 危险!会强制删除 my_project 目录及其下所有内容,且没有任何提示
rm -rf my_project

删除隐藏文件或目录

以 开头的文件或目录是隐藏的,删除它们时,需要在文件名前也加上 。

# 删除隐藏文件 .config
rm .config
# 删除隐藏目录 .cache
rm -r .cache

结合通配符使用

通配符 可以匹配任意数量的字符,使用 rm 结合通配符时要极度小心

# 删除所有 .log 文件
rm *.log
# 删除所有以 'temp' 开头的文件
rm temp*
# 危险!会删除当前目录下的所有文件和文件夹!
# rm -rf *

与 macOS 图形界面的关系

一个非常重要的概念是:rm 命令删除的文件不会进入“废纸篓”

  • Finder 删除:将文件移动到 ~/.Trash 目录(废纸篓),可以恢复。
  • rm 命令删除:直接从文件系统中移除文件,释放磁盘空间,对于普通硬盘,数据可能仍留在磁盘上,直到被新数据覆盖;但对于 SSD 或闪存,数据可能被更快地擦除。

如何安全地使用 rm

鉴于 rm 的危险性,这里有一些最佳实践:

  1. 使用 rm -i:这是防止误删最简单有效的方法,你可以把它设为默认别名(见下文)。

  2. ls,后 rm:在执行 rm 命令前,先用 lsls -l 确认你要删除的文件或目录。

    # 想要删除 tmp 目录下的所有东西,先看看里面有什么
    ls -l tmp/
    # 确认无误后,再执行删除
    rm -r tmp/
  3. 使用 trash 命令:macOS 没有内置的 trash 命令,但你可以通过 Homebrew 安装一个。

    # 安装 trash-cli
    brew install trash-cli
    # 使用 trash 命令删除文件(会进入废纸篓)
    trash some_file.txt
    # 永久清空废纸篓
    trash-empty
  4. 创建 rm 的安全别名:在你的 Shell 配置文件(如 ~/.zshrc~/.bash_profile)中,可以创建一个更安全的 rm 别名,让它默认带上 -i 选项。

    # 打开配置文件 (使用 zsh shell)
    open -e ~/.zshrc
    # 在文件末尾添加下面这行
    alias rm='rm -i'
    # 保存文件后,让配置生效
    source ~/.zshrc

    这样,你以后每次输入 rm,实际上执行的都是 rm -i,系统会要求你确认。

命令 含义 风险等级
rm file.txt 删除文件
rm -r dir 删除目录
rm -f file 强制删除文件(无提示)
rm -rf dir 强制递归删除目录(无提示) 极高

记住这个口诀:rm 要用 irf 莫乱提,在不确定的时候,多用 ls 确认,或者安装 trash 命令作为更安全的替代方案。

分享:
扫描分享到社交APP
上一篇
下一篇