Opção '-W' do comando macOS rm - cancelar a exclusão

22

Eu estava olhando a página de manual do rmcomando no meu MacBook e notei o seguinte:

-W Tentativa de recuperar os arquivos nomeados. Atualmente, essa opção pode ser usada apenas para recuperar arquivos cobertos por blecautes.

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

DarkHeart
fonte

Respostas:

20

Um whiteout é um arquivo de marcador especial colocado por alguns sistemas de arquivos de ordem superior "transparentes" (aqueles que usam um ou mais locais reais como base para sua apresentação), particularmente sistemas de arquivos de união, para indicar que um arquivo existe em um dos os locais de base foram excluídos no sistema de arquivos artificial, embora ainda existam em outros lugares. Listar o sistema de arquivos union não mostrará o arquivo em branco.

Ter um tipo especial de arquivo representando estes está na tradição BSD da qual o macOS deriva: o macOS usa os st_modebits 0160000 para marcá-los . Usando ls -F, esses arquivos serão marcados com um %sinal e ls -Wmostrarão que eles existem (caso contrário, geralmente são omitidos nas listagens). Muitos sistemas de união também criam arquivos normais com um nome especial para representar apagões em sistemas que não suportam esses arquivos.

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

Michael Homer
fonte
12

Um "whiteout" é um recurso de algum sistema de arquivos da união.

Se você possui uma hierarquia de arquivos que é sobreposta por uma montagem de união e existe um arquivo em ambas as camadas da hierarquia visível de arquivos resultante, um "whiteout" pode ser usado para remover o arquivo da camada superior e preservá-lo na camada inferior (como usar Tipp-ex).

O rmutilitário pode remover o whiteout e fazer com que o arquivo apareça novamente (pois nunca foi excluído do sistema de arquivos inferior).

Kusalananda
fonte