只是'rm -rf'会删除任何文件吗?


16

我最近跑了 rm -rf,没有rm -rf /,但是什么也没发生。我只是得到这样的结果:

终奌站

我很害怕,因为我担心它可能删除了一些文件,但没有删除。只需确定,这能删除我目录中的所有文件吗?


36
如果不确定(一定是100%),请不要运行命令。
太阳迈克

5
切勿键入您不理解的命令。您只需要一个。或/,您将删除很多内容。
尼尔森

18
如果要尝试使用潜在危险的命令,请考虑安装虚拟机。
musicman523

6
尝试所有需要的操作(只要安全地备份了数据)。这只是软件,如果出现任何问题,您可以随时重新安装。不要让任何人训练您担心计算机。
hobbs

3
如果不确定100%,请绝对执行命令。只有这么多种学习方法,而实际运行它们就是其中一种。请注意,并且确实有备份,并且确实使用了VM等。但是,没有任何恐惧之心无助于您的成长。很明显,何时应该格外小心(例如rm),但是对于许多其他大多数命令(例如,所有基于管道的文本操作命令)而言,经常尝试它们是您最容易/最简单的操作。很明显,连同研究手册页。
AnoE

Answers:


49

否,rm -rf因为您没有为命令提供参数,所以不会删除任何文件。


5
由于-f这个原因,没有参数运行它不是错误。 rm -r会抱怨“缺少操作数”,但会-f禁止该操作,还会抑制不存在的文件的错误。(因此,例如,脚本可以rm -rf /foo/bar/*用来清空可能已经为空的目录,而不必2>/dev/null压榨错误。)
Peter Cordes

34

手册页

rm删除每个指定的文件。

这意味着您可以使用它一次删除文件列表,例如使用

rm -rf test1.txt test2.txt

幸运的是,您所做的只是传递一个文件列表,因此它什么也没有删除。另外,@ SolarMike所说的话:如果您不知道命令的作用,请不要运行它。macOS旨在“隐藏”最终用户的所有危险(但可能功能强大)的Unix操作。


7
仅供参考,-r除非您要递归删除目录,否则不需要该标志。如果只是文件,rm就足够了- -f强制执行它并不会要求您“确定”每个文件。
Tim S.

9
另外,-f导致错误使用时未显示使用情况消息。这就是运行OP时根本没有输出的原因rm -rf。如果他们在没有指定文件/目录的情况下运行“ rm -r”,他们将得到以下用法消息: JanNash ~ $ usage: rm [-f | -i] [-dPRrvW] file ... unlink file
Jan Nash

2
@barrycarter这是完全不对的-它仍将尝试删除/,它将跳过不存在的文件xyz*(由于缺少匹配项而不会扩展)。
蓬松的

3
@barrycarter该行为取决于外壳的全局配置。至少在bash的在MacOS默认情况下,它实际上是删除ab我-即使没有指定-f。用相同的命令echo rm -f a b c*代替,以查看实际行为。
蓬松的

2
@barrycarter和蓬松:发生什么情况取决于是否设置了外壳变量nonomatch
Thomas Padron-McCarthy

13

对于新手/ Linux / Unix新手:

rm 一个人也无能为力,因为您还没有告诉它要摆脱什么。

man rm 如果您了解的话,可以解释其中的大部分内容。

-r 表示递归,如“将所有内容包含在子文件夹中”

-f 表示强制使用“不要求我确认”模式

rm -rf(不要这样做)/会说删除下面的所有内容/检查(根文件夹)下的(在最新的macOS版本上,SIP会阻止您由此删除macOS本身,但很多其他内容也会被删除)

rm [some file name] 只会删除该文件。

rm -rf /home/myuser/books将删除所有myuserbooks文件夹,以及该文件夹。


6
如今,您需要rm -rf / --no-preserve-root正确拍摄腿部。
Gallifreyan

1
@Gallifreyan有没有办法正确射腿?
PascalVKooten

1
据说这很好用。我没有其他人知道:)
加里弗雷扬(Gallifreyan)

1
在macOS上@Gallifreyan?pastebin.com/aVAsNcKC表示
相反的

@Gallifreyan:find / -delete应该“起作用”(即实际上删除了东西,所以不要运行它)
Peter Cordes,

4

否,但是如果您要删除,请参见以下示例:

启动终端后(在/ Applications / Utilities文件夹中),键入cd〜/ Desktop导航到Desktop目录。如果此处有一个名为MyFile.rtf的文件,您从未希望再次看到它,则可以运行以下命令:

rm MyFile.rtf

当您按回车键时,文件将变成po!它会消失,吐司,历史。你不能找回来。


如果我正确理解了文档,实际上rm会删除文件的所有引用,不会通过覆盖每个字节来擦洗文件的硬盘驱动器。
NoBugs

@NoBugs但是,公平地说,这是所有现代“删除”(包括Windows)的工作方式。如果删除功能覆盖了每个字节,那么它将照此进行广告(主要是因为它花费的时间更长,并且在大多数情况下是不必要的)。
疯狂
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.