web-dev-qa-db-ja.com

macOS rmコマンドの「-W」オプション-削除の取り消し

MacBookでrmコマンドのマニュアルページを見ていたところ、次のことに気づきました。

-W指定されたファイルの削除を取り消そうとします。現在、このオプションは、ホワイトアウトの対象となっているファイルを回復するためにのみ使用できます。

これは何を意味するのでしょうか? 「ホワイトアウト」とは何ですか?

22
DarkHeart

ホワイトアウトは、いくつかの「シースルー」高次ファイルシステム(1つ以上の実際の場所をプレゼンテーションの基礎として使用するもの)、特にユニオンファイルシステムによって配置される特別なマーカーファイルであり、ファイルのいずれかに存在するファイルを示しますベースロケーションは、他の場所にまだ存在していても、人工ファイルシステム内で削除されています。 unionファイルシステムを一覧表示しても、ホワイトアウトされたファイルは表示されません。

これらを表す特別な種類のファイルを持つことは、macOSの派生元であるBSDの伝統にあります: macOSはst_modeビット0160000(それらをマークするls -F、それらのファイルには%記号 、および ls -Wはそれらが存在することを示します (そうでなければ、それらは一般的にリストから省略されます)。多くのユニオンシステムは、通常のファイルを特別な名前で作成して、それらのファイルをサポートしないシステムでのホワイトアウトを表します。

MacOSがこれら自体を何らかの方法で公開するかどうかはわかりませんが、そのBSD遺産からの他のシステムは公開しており、外部ファイルシステムドライバーがそれらを使用する可能性があります。

20
Michael Homer

「ホワイトアウト」は、いくつかのユニオンファイルシステムの機能です。

ユニオンマウントによってオーバーレイされているファイル階層があり、ファイルが結果として表示されるファイル階層の両方のレイヤーに存在する場合、「ホワイトアウト」を使用して、ファイルを下位レイヤーに保持しながら上位レイヤーから削除できます。 (Tipp-exの使用と同様)。

rmユーティリティは、ホワイトアウトを削除して、ファイルを再び表示させることができます(下位のファイルシステムから削除されたことがないため)。

12
Kusalananda