rm -rf *.*はファイルシステムを破損しますが、rm -rf /は破損しませんこれは?
コメント
- UnixおよびLinuxStack Exchangeは6年以上にわたって役立ち、SuperUserも同様に役立ちました: unix.stackexchange.com/questions/19547 superuser.com/questions/312769 unix.stackexchange.com/questions/302468
回答
あり「特別なことは何もありません。rm -rf *.*はファイル名がワイルドカードのコマンドです。名前にドットが含まれている現在のディレクトリ内のすべてのファイルを再帰的に削除します。
rm -rf /は、ルートディレクトリでrmを実行しようとするとエラーが発生します。このはPOSIXによって義務付けられています:
If […] オペランドレゾルートディレクトリに移動すると、 rm は標準エラーに診断メッセージを書き込み、そのようなオペランドではそれ以上何もしません。
依存シェルとその設定では、*.*は親ディレクトリの..と一致する場合がありますが、/、それを削除しようとするとエラーにもなります。
どちらもファイルシステムを破損することはなく、rmは削除する(しようとする)だけです。通常のファイルシステムコールを使用したファイル。もちろん、最初のコマンドが重要なファイルを含むディレクトリで実行された場合、システム全体またはユーザーのファイルへの影響は大きくなる可能性があります。
コメント
- 十分に新しいバージョンのGNU
rm(元々はSolaris IIRCから盗まれた機能)。組み込みの軽量rmは最新のPOSIXと互換性がありません。