macOS rm 指令“-W”選項 - 取消刪除

macOS rm 指令“-W”選項 - 取消刪除

rm我在 MacBook 上查看該命令的手冊頁,並注意到以下內容:

-W 嘗試取消刪除指定的檔案。目前,此選項只能用於還原被白色覆蓋的檔案。

這是什麼意思?什麼是「白化」?

答案1

空白是由一些「透明」高階文件系統(使用一個或多個真實位置作為其表示基礎的文件系統)放置的一種特殊標記文件,特別是聯合文件系統,以指示存在於其中之一的文件基本位置已在人工檔案系統中刪除,儘管它仍然存在於其他地方。列出聯合檔案系統不會顯示白色檔案。

有一種特殊類型的檔案來表示這些是 macOS 衍生的 BSD 傳統:macOS 使用st_mode位元 0160000 來標記它們。使用ls -F,這些文件將標有一個%符號, 和ls -W將表明它們存在(否則,它們通常會從列表中省略)。許多聯合系統也創建具有特殊名稱的普通文件,以表示不支援這些文件的系統上的空白。

我不確定 macOS 是否會以任何方式公開這些內容,但其 BSD 傳統的其他系統會這樣做,並且外部檔案系統驅動程式可能會使用它們。

答案2

「whiteout」是某些聯合檔案系統的功能。

如果您有一個由聯合掛載覆蓋的文件層次結構,並且文件存在於生成的可見文件層次結構的兩個層中,則可以使用“whiteout”從頂層刪除該文件,同時將其保留在較低層中(就像使用 Tipp-ex 一樣)。

rm實用程式能夠刪除空白並使檔案再次出現(因為它從未從較低的檔案系統中刪除)。

相關內容