「rm -rf」だけでファイルが削除されますか?


16

私は最近走りましたがrm -rf、ではありませんrm -rf /でしたが、何も起こりませんでした。次のような結果が得られます。

ターミナル

いくつかのファイルを削除できたのではないかと心配していましたが、そうではなかったので怖かったです。念のため、これによりディレクトリからファイルが削除された可能性がありますか?


36
確信がない場合(100%が確実)、コマンドを実行しないでください。
ソーラーマイク

5
理解できないコマンドを入力しないでください。必要なのはだけでした。または/を使用して、大量のものを削除します。
ネルソン

18
潜在的に危険なコマンドを試してみたい場合は、仮想マシンのインストールを検討してください。
musicman523

6
必要なすべてを試してください(データが安全にバックアップされている限り)。それは唯一のソフトウェアであり、何か問題が発生した場合はいつでも再インストールできます。コンピューターを恐れるようにだれにも訓練させないでください。
ホッブズ

3
100%確実でない場合は、絶対にコマンドを実行してください。学習する方法は非常に多く、実際に実行することもその1つです。空き領域を警告し、明らかにバックアップを持ち、VMなどを使用します。しかし、恐れから何も逃さないことは、あなたの成長を助けるのにほとんど役に立たないでしょう。いつ特別な注意を払うべきか(つまりrm)が明らかであるはずですが、たとえばパイプベースのすべてのテキスト操作コマンドなど、他の多くの/ほとんどのコマンドでは、頻繁に試してみるのが最も簡単/簡単です。明らかに、manページを学習します。
-AnoE

回答:


49

いいえ、rm -rfコマンドに引数を指定しなかったため、ファイルは削除されません。


5
のため、-f引数なしで実行してもエラーではありません。 rm -r「オペランドの欠落」について文句を言いますが、それを-f抑制し、存在しないファイルのエラーも抑制します。(たとえば、スクリプトはエラーをつぶすrm -rf /foo/bar/*必要なく、すでに空のディレクトリを空にするために使用できます2>/dev/null。)
ピーターコーデス

34

マニュアルページから:

rmは、指定された各ファイルを削除します。

これは、たとえば次のように、ファイルのリストを一度に削除するために使用できることを意味します

rm -rf test1.txt test2.txt

幸いなことに、のファイルリストを渡すだけで、何も削除されませんでした。また、@ SolarMikeが言っていること:コマンドが何をするのかわからない場合は、実行しないでください。macOSは、すべての危険な(ただし潜在的に強力な)Unix操作をエンドユーザーから「隠す」ように設計されています。


7
参考までに、-rディレクトリを再帰的に削除しない限り、このフラグは不要です。それが単なるファイルである場合、それrmは十分です- -fそれはすべてのファイルについて「あなたは確信しています」と尋ねることはありません強制のためです。
ティムS.

9
また、-fを使用すると、誤って使用したときに使用法メッセージが表示されなくなります。これが、OPの実行時に出力がまったくなかった理由rm -rfです。:彼らはこの使用方法のメッセージ得ているだろう、彼らは指定されたファイル/ディレクトリせずに「RM -r」を実行していた JanNash ~ $ usage: rm [-f | -i] [-dPRrvW] file ... unlink file
ヤン・ナッシュ

2
@barrycarterそれは完全に真実ではありません-削除を試み/ますが、存在しないファイルをスキップしますxyz*(一致しないため単純に拡張しません)。
ふわふわ

3
@barrycarterこの動作は、シェルのグロビング設定によって異なります。少なくともmacOSのbashのデフォルトでは、実際には削除ab行います-fecho rm -f a b c*代わりに同じコマンドを実行して、実際の動作を確認してください。
ふわふわ

2
@barrycarter and fluffy:何が起こるかは、シェル変数nonomatchが設定されているかどうかによって異なります。
トーマスパドロン-マッカーシー

13

素人/ Linux / Unix初心者向け:

rm あなたが何を取り除くべきかをあなたがそれに伝えていないので、単独では何もしません。

man rm あなたがそれを理解していれば、これのほとんどを説明できます。

-r 「サブフォルダーにすべてを含める」のように、再帰を意味します

-f 「強制的に確認しないでください」モードを意味します

rm -rf(これをしないでください)チェックせずに(ルートフォルダ)の/下のすべてを削除します/(最近のmacOSバージョンでは、これによりmacOS自体を削除できなくなりますが、他の多くのものは削除されます)

rm [some file name] そのファイルを削除するだけです。

rm -rf /home/myuser/booksmyuserbooksフォルダとフォルダのすべてを削除します。


6
最近、あなたはrm -rf / --no-preserve-root正しくあなたの足を撃つためにする必要があります。
ガリフレヤン

1
@Gallifreyan足を正しく撃つ方法はありますか?
-PascalVKooten

1
これはうまく機能すると言われています。私は他に何も知りません:)
ガリフレヤン

1
macOSの@Gallifreyan?pastebin.com/aVAsNcKCはそうでないことを示し
nohillside

@Gallifreyan:find / -delete「動作」する必要があります(つまり、実際に削除するので、実行しないでください。)
Peter Cordes

4

いいえ。ただし、削除する場合は次の例をご覧ください。

(/ Applications / Utilitiesフォルダー内の)ターミナルを起動した後、cd〜/ Desktopと入力して、デスクトップディレクトリに移動します。ここにMyFile.rtfという名前のファイルがあり、これまで二度と見たくない場合は、次のコマンドを実行できます。

rm MyFile.rtf

Returnキーを押すと、ファイルは偽装されます。それは消え、トースト、歴史になります。取り戻すことはできません。


実際、ドキュメントを正しく理解していれば、rmはファイルのすべての参照を削除し、各バイトを上書きしてファイルのハードドライブをスクラブしません。
-NoBugs

@NoBugsしかし、公平を期すと、これは現代のすべての「削除」が機能する方法です。Windowsも含まれます。削除機能が各バイトを上書きしている場合、そのようにアドバタイズされます(主に時間がかかり、ほとんどの場合不要であるため)。
非常識な
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.