rm -rf /とrm-rf *。*に違いはありますか?

rm -rf *.*はファイルシステムを破損しますが、rm -rf /は破損しませんこれは?

コメント

回答

あり「特別なことは何もありません。rm -rf *.*はファイル名がワイルドカードのコマンドです。名前にドットが含まれている現在のディレクトリ内のすべてのファイルを再帰的に削除します。

rm -rf /は、ルートディレクトリでrmを実行しようとするとエラーが発生します。このはPOSIXによって義務付けられています

If […] オペランドレゾルートディレクトリに移動すると、 rm は標準エラーに診断メッセージを書き込み、そのようなオペランドではそれ以上何もしません。

依存シェルとその設定では、*.*は親ディレクトリの..と一致する場合がありますが、/、それを削除しようとするとエラーにもなります。

どちらもファイルシステムを破損することはなく、rmは削除する(しようとする)だけです。通常のファイルシステムコールを使用したファイル。もちろん、最初のコマンドが重要なファイルを含むディレクトリで実行された場合、システム全体またはユーザーのファイルへの影響は大きくなる可能性があります。

コメント

  • 十分に新しいバージョンのGNU rm(元々はSolaris IIRCから盗まれた機能)。組み込みの軽量rmは最新のPOSIXと互換性がありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です