GNU/Linux >> Znalost Linux >  >> Linux

Jak najít a odstranit soubory starší než určité časové období v Linuxu

Vyhledávání podle časového razítka souboru

Souborové systémy Unix/Linux mají na každém souboru tři typy časového razítka. Jsou následující:

  1. Čas přístupu (-atime) :Časové razítko, kdy byl soubor naposledy otevřen.
  2. Čas úpravy (-mtime) :Časové razítko, kdy byl soubor naposledy upraven.
  3. Změnit čas (-ctime) :Časové razítko, kdy byla metadata souboru (jako jsou oprávnění nebo vlastnictví) naposledy upravena.

Vyhledejte a odstraňte soubor starší než 7 dní

Vezměme si příklad, kde najdeme a smažeme soubor starší než 7 dní. Použijeme možnost „-mtime “ příkazu find pro tento účel.

1. Získejte seznam souborů pomocí příkazu find následovně:

# find /path_to_directory -mtime +7 -type f -exec ls {}\;

2. Pokud názvy souborů začínají nějakým konkrétním vzorem, filtrujte jej následovně:

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;

3. Po kontrole a potvrzení výstupu přejděte k odstranění skriptu (je to velmi DŮLEŽITÉ), jinak dojde k nenapravitelné ztrátě dat.

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;

4. Pokud je to nutné provést na vzdáleném serveru pomocí úlohy cron a zaznamenat názvy souborů smazaných souborů, použijte následující příkaz

# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"

Závěr

-mtime parametr vyhledá soubory na základě času modifikace; -ctime vyhledává na základě času změny. -atime, -mtime a -ctime používají čas měřený ve dnech. Příkaz find také podporuje možnosti, které měří v minutách. Jsou to následující:

  1. -amin (doba přístupu)
  2. -mmin (doba úpravy)
  3. -cmin (čas změny)

Chcete-li například vytisknout všechny soubory, které mají přístupovou dobu starší než sedm minut, použijte následující příkaz:

# find . -type f -amin +7 -print

-novější možnost

Volba -newer určuje referenční soubor s časem modifikace, který bude použit k výběru souborů upravených nedávno než referenční soubor.

Najděte všechny soubory, které byly změněny nedávno než soubor file.txt:

# find . -type f -newer file.txt -print


Linux
  1. Jak extrahovat soubory .gz a .tar.gz v Linuxu

  2. Jak smazat všechny soubory starší než X počet dní v Linuxu?

  3. Jak najít a odstranit prázdné adresáře a soubory v Linuxu

  1. Jak odstranit soubory a adresáře v Linuxu z příkazového řádku

  2. najít a odstranit soubor nebo složku starší než x dní

  3. Jak v Linuxu odstraníte soubory starší než konkrétní datum?

  1. Jak najít a seřadit soubory na základě data a času úpravy v Linuxu

  2. Linux – Jak zjistit datum vytvoření souboru?

  3. Jak mohu rekurzivně odstranit všechny prázdné soubory a adresáře v Linuxu?