macOS rm 命令“-W”选项 - 取消删除

23 osx rm files deleted-files

我正在查看rmMacBook 上命令的手册页,我注意到以下内容:

-W 尝试取消删除命名文件。目前,该选项只能用于恢复被whiteouts 覆盖的文件。

这是什么意思?什么是“白化”?

Mic*_*mer 21

whiteout 是由一些“透视”高阶文件系统(使用一个或多个实际位置作为其表示基础的文件系统)放置的特殊标记文件,特别是联合文件系统,以指示文件存在于其中一个人工文件系统中的基本位置已被删除,即使它仍然存在于其他地方。列出联合文件系统不会显示白化文件。

有一种特殊类型的文件来表示这些是 macOS 源自的 BSD 传统:macOS 使用st_mode位 0160000 来标记它们。使用ls -F时,这些文件将被打上一个%标志,并ls -W会显示他们的存在(否则,他们通常从列表中省略)。许多联合系统还制作具有特殊名称的普通文件,以表示不支持这些文件的系统上的空白。

我不确定 macOS 是否以任何方式公开这些本身,但来自其 BSD 传统的其他系统确实如此,并且外部文件系统驱动程序可能会使用它们。


Kus*_*nda 12

“whiteout”是一些联合文件系统的一个特性。

如果您有一个被联合挂载覆盖的文件层次结构,并且一个文件存在于生成的可见文件层次结构的两个层中,则可以使用“whiteout”将文件从顶层中删除,同时将其保留在较低层中(比如使用 Tipp-ex)。

rm实用程序能够删除空白并使文件再次出现(因为它从未从较低的文件系统中删除)。