Como verificar o que está bloqueando um arquivo?

11

Notei que às vezes o Mail.app bloqueia arquivos. O bloqueio em si permite que os arquivos sejam movidos para a Lixeira, mas não permite que a Lixeira seja esvaziada. (Talvez o Lixo deva ser renomeado Thrash nesse caso)

Existe uma maneira (através de um comando do terminal ou de um aplicativo) de ver qual aplicativo bloqueia o arquivo e / ou desbloqueia o arquivo sem sair do aplicativo?

Michal M
fonte
Haha! Você me pegou. ;)
Michal M

Respostas:

13

Como Rabarberski diz, lsofpode ser usado para encontrar qualquer processo que tenha o arquivo aberto. Observe que você precisa executar o programa como root, ou seja, usando sudo, e que pode dar o nome do caminho para o arquivo em que está interessado como argumento, para que não haja necessidade de grepchamar a dica que Rabarberski aponta. Além disso, se um processo reter um bloqueio no arquivo, você poderá ver isso na coluna FD na lsofsaída. Consulte a página do manual para obter detalhes. (Quando executo sudo lsofna minha máquina, não vejo arquivos bloqueados, portanto não garanto que isso funcione corretamente no Mac. sudoAfinal é um programa unix genérico e é possível que alguns recursos não funcionem no OSX.)

Você não pode desbloquear um arquivo sem interromper o processo que mantém o bloqueio. Mas você pode removê-lo rmda linha de comando.

Harald Hanche-Olsen
fonte
Acabei de notar um erro de impressão bobo: onde diz " sudoafinal de contas ...", era o que lsofeu pretendia mencionar. Não vai editá-lo - é muito pequeno para garantir uma colisão com a primeira página.
Harald Hanche-Olsen