GNU/Linux >> Znalost Linux >  >> Linux

Existuje příkaz UNIX pro seznam všech nedávno odstraněných souborů ze systému

*systémy nix mají obvykle locate nainstalovaná utilita. Má databázi, obvykle aktualizovanou každou noc, která obsahuje názvy (téměř) všech souborů ve vašem systému. Stačí spustit:

locate /path/to/dir/of/interest

a měli byste vidět seznam souborů, které byly v tomto adresáři při poslední aktualizaci databáze. Můžete to porovnat s aktuálním seznamem.

Protože bude automaticky přepsána novou verzí, můžete si nyní vytvořit záložní kopii této databáze. Na systémech ovlivněných debianem je uložen v /var/lib/mlocate/mlocate.db .

Jak zobrazit chybějící soubory

  1. Vytvořte zálohu staré databáze:

    cp /var/lib/mlocate/mlocate.db ~/old.db
    
  2. Aktualizujte databázi. Příkaz k tomu se může lišit. Na systému podobnému debianu zkuste:

    sudo /etc/cron.daily/mlocate
    
  3. Získejte nové a staré seznamy souborů pro váš adresář:

    locate -d ~/old.db /your/dir | sort >~/old.list
    locate /your/dir | sort >~/new.list
    
  4. Získejte seznam všech nových a chybějících souborů:

    diff ~/old.list ~/new.list
    

Další poznámky

  • Ne všechny soubory jsou uvedeny v databázi locate. Konfigurační soubor, obvykle /etc/updatedb.conf , určuje, které soubory a adresáře jsou vyloučeny.

  • V minulosti jsem používal nějakou verzi locate to by ve výchozím nastavení vypsalo pouze soubory, které stále existují. Pokud je to váš případ locate , budete chtít tuto funkci vypnout.


Linux
  1. Nelze odebrat soubory z adresáře s chybou „Seznam argumentů je příliš dlouhý“

  2. Unixový příkaz pro výpis souborů obsahujících řetězec, ale *NE* obsahujících jiný řetězec

  3. Vypište všechna připojení v Linuxu

  1. Vyloučit seznam souborů z hledání

  2. Jak zobrazit seznam nedávno smazaných souborů z adresáře?

  3. Jak zobrazit seznam všech souborů ve sdílené síťové složce Windows SMB

  1. Mazání souborů podle věku?

  2. Existuje unixový nástroj příkazového řádku, který dokáže analyzovat soubory písem?

  3. Existuje příkaz Unix / Linux pro počítání řádků za sekundu z stdin?