Existe um comando do UNIX para listar todos os arquivos recentemente removidos de um sistema

6

Por acaso, um comando rm -rf foi lançado para o diretório raiz em vez do diretório atual. Parei de remover o arquivo por Ctrl + C mas alguns arquivos já foram removidos. Existe um comando LINUX para listar todos os arquivos recentemente removidos do sistema para obter os aplicativos afetados?

Sistema Operacional: CentOS 6.3

    
por Dig The Code 29.04.2014 / 07:30

2 respostas

10

Os sistemas * nix geralmente possuem um utilitário locate instalado. Ele tem um banco de dados, geralmente atualizado todas as noites, que tem os nomes de (quase) todos os arquivos em seu sistema. Basta executar:

locate /path/to/dir/of/interest

e você deverá ver uma lista de arquivos que estavam nesse diretório desde a última atualização do banco de dados. Você pode diferenciar isso com a lista atual.

Como ele será substituído automaticamente por uma nova versão, você pode fazer uma cópia de backup desse banco de dados agora. Em sistemas influenciados pelo debian, ele é armazenado em /var/lib/mlocate/mlocate.db .

Como mostrar arquivos ausentes

  1. Faça um backup do banco de dados antigo:

    cp /var/lib/mlocate/mlocate.db ~/old.db
    
  2. Atualize o banco de dados. O comando para fazer isso pode variar. Em um sistema parecido com o debian, tente:

    sudo /etc/cron.daily/mlocate
    
  3. Obtenha as listas de arquivos novas e antigas para o seu diretório:

    locate -d ~/old.db /your/dir | sort >~/old.list
    locate /your/dir | sort >~/new.list
    
  4. Obtenha uma lista de todos os arquivos novos e ausentes:

    diff ~/old.list ~/new.list
    

Notas adicionais

  • Nem todos os arquivos estão listados no banco de dados do locate. Um arquivo de configuração, normalmente /etc/updatedb.conf , determina quais arquivos e diretórios são excluídos.

  • No passado, usei uma versão de locate que, por padrão, listaria apenas os arquivos que ainda existem. Se esse for o caso do seu locate , você deverá desativar esse recurso.

por 29.04.2014 / 07:53
1

Para o arco, eu estava com medo de ter apagado acidentalmente muitos arquivos com uma imagem ruim ... | Formato de comando xargs rm -rf. John1024 obrigado pelo conselho.

Para simplificar tudo (para o meu diretório web / srv / http) eu corro tudo isso em uma linha:

sudo cp /var/lib/mlocate/mlocate.db ~/old.db; sudo updatedb; sudo locate -d ~/old.db /srv/http | sort >~/old.list; sudo locate /srv/http | sort >~/new.list; sudo diff ~/old.list ~/new.list;

Certifique-se de substituir / srv / http no seu diretório de referência.

e isso exibe os arquivos que foram alterados. Obrigado novamente!

    
por 24.08.2017 / 06:22