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实用程序能够删除空白并使文件再次出现(因为它从未从较低的文件系统中删除)。

相关内容