comando macOS rm '-W' option - undelete

20

Eu estava olhando para a página man do comando rm no meu MacBook e notei o seguinte:

-W Attempt to undelete the named files. Currently, this option can only be used to recover files covered by whiteouts.

O que isso significa? O que é um "whiteout"?

    
por DarkHeart 30.04.2017 / 10:49

2 respostas

18

Um whiteout é um arquivo marcador especial colocado por alguns sistemas de arquivos de alta ordem "transparentes" (aqueles que usam uma ou mais localizações reais como base para sua apresentação), particularmente sistemas de arquivos union, para indicar que existe um arquivo em um dos locais de base foi excluído dentro do sistema de arquivos artificial, embora ainda exista em outro lugar. A listagem do sistema de arquivos union não mostrará o arquivo sem branco.

Ter um tipo especial de arquivo representando estes está na tradição do BSD de que o macOS deriva de: O macOS usa st_mode bits 0160000 para marcá-los . Usando ls -F , esses arquivos serão marcados com um sinal % e ls -W mostrará que eles existem (caso contrário, eles geralmente são omitidos das listagens ). Muitos sistemas de união também fazem arquivos normais com um nome especial para representar whiteouts em sistemas que não suportam esses arquivos.

Não tenho certeza se o macOS expõe isso de alguma forma, mas outros sistemas de sua herança BSD fazem e é possível que drivers de sistema de arquivos externos possam usá-los.

    
por 30.04.2017 / 11:10
12

Um "whiteout" é uma característica de algum sistema de arquivos de união.

Se você tiver uma hierarquia de arquivos sobreposta por uma montagem de união e existir um arquivo em ambas as camadas da hierarquia de arquivos visível resultante, poderá ser usado um "whiteout" para remover o arquivo da camada superior, preservando-o a camada inferior (como usar o Tipp-ex).

O utilitário rm é capaz de remover o whiteout e fazer o arquivo aparecer novamente (já que ele nunca foi excluído do sistema de arquivos inferior).

    
por 30.04.2017 / 11:05