Como listar os ficheiros apagados recentemente de uma pasta?

eu nem tenho certeza se isso é fácil, mas eu gostaria de listar os arquivos que foram recentemente apagados de um diretório, recursivamente se possível.

Estou à procura de uma solução que não exija a criação de um ficheiro temporário que contenha uma imagem da estrutura do directório original com a qual comparar, porque o acesso de escrita pode nem sempre estar disponível. Editar: Se for possível alcançar o mesmo resultado armazenando a fotografia numa variável shell em vez de um ficheiro, isso resolveria o meu problema.

Algo do género:

find /some/directory -type f -mmin -10 -deletedFilesOnly

Edit: OS: estou a usar o Ubuntu 14.04 LTS, mas o(s) comando (s) estaria provavelmente a correr numa variedade de caixas Linux ou contentores do Docker, a maioria ou todas as quais deveriam estar a usar ext4, e às quais provavelmente não teria acesso para fazer modificações.

Author: Marco Roy, 2015-08-07

2 answers

Podes usar o utilitário debugfs,

O Debugfs é um sistema de ficheiros baseado em RAM especialmente concebido para depuração

Primeiro, execute debugfs /dev/hda13 no seu terminal (substituindo /dev/hda13 pelo seu próprio disco/partição).

(nota: você pode encontrar o nome do seu disco executando df / no terminal).

Uma vez no modo de depuração, poderá usar o comando lsdel para listar os inodes correspondentes aos ficheiros apagados.

Quando os ficheiros são removidas no linux elas são apenas não-ligadas, mas as suas os inodes (endereços no disco onde o ficheiro está realmente presente) são não removido

Para obter os locais destes ficheiros apagados, pode usar debugfs -R "ncheck 320236" a substituir o número pelo seu inode em particular.

Inode   Pathname
320236  /path/to/file

A partir daqui você também pode inspecionar o conteúdo dos arquivos apagados com cat. (NOTA: Você também pode se recuperar daqui, Se necessário).

Grande post sobre isso toma..

 5
Author: nextstep, 2015-08-07 21:21:39
Obrigado pelos vossos comentários e Respostas. debugfs parece ser uma solução interessante para os requisitos iniciais, mas é um pouco exagerado para a solução simples de & luz que eu estava à procura; se estou a perceber correctamente, o 'kernel' tem de ser construído com o Suporte debugfs e a pasta de destino tem de estar numa montagem debugfs. Infelizmente, isso realmente não vai funcionar para o meu caso de uso; eu devo ser capaz de fornecer uma solução para kernels e diretórios existentes, "básicos". Como isto parece virtualmente impossível de realizar, eu fui capaz de negociar e relaxar os requisitos até listar a quantidade de arquivos que foram recentemente apagados de um diretório, recursivamente se possível.

Esta é a solução que acabei por implementar:

  1. um comando simples find canalizado para wc para contar o número original de ficheiros na pasta de destino (recursivamente). O resultado pode então ser facilmente armazenado em uma variável de shell ou script, sem necessidade de escrita acesso ao sistema de ficheiros.

DEL_SCAN_ORIG_AMOUNT=$(find /some/directory -type f | wc -l)

  1. podemos então executar o mesmo comando mais tarde para obter o número atualizado de arquivos.

DEL_SCAN_NEW_AMOUNT=$(find /some/directory -type f | wc -l)

  1. Então podemos armazenar a diferença entre os dois em outra variável e atualizar o valor original.

DEL_SCAN_DEL_AMOUNT=$(($DEL_SCAN_ORIG_AMOUNT - $DEL_SCAN_NEW_AMOUNT)); DEL_SCAN_ORIG_AMOUNT=$DEL_SCAN_NEW_AMOUNT

  1. podemos então imprimir uma mensagem simples se o número de arquivos caiu.

if [ $DEL_SCAN_DEL_AMOUNT -gt 0 ]; then echo "$DEL_SCAN_DEL_AMOUNT deleted files"; fi;

  1. voltar ao passo 2.

Infelizmente, esta solução não vai relatar nada se a mesma quantidade de arquivos foram criados e apagados durante um intervalo, mas isso não é uma edição enorme para o meu caso de uso.

Para contornar isto, teria de guardar a lista de ficheiros em vez da quantidade, mas não consegui fazer com que funcionasse com variáveis de shell. Se alguém pudesse descobrir isso, eu me ajudaria imensamente como iria atender os requisitos iniciais! Eu também. gostaria de saber se alguém tem comentários sobre qualquer uma das duas abordagens.
 0
Author: Marco Roy, 2015-08-09 06:04:10