GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit soubory starší než zadané dny v Linuxu

Jak už možná víte, v Linuxu používáme k mazání souborů a složek příkaz rm. Názvy souborů, které mají být odstraněny, musí být předány jako argumenty rm . Nicméně rm sama o sobě nenabízí další možnosti, jako je mazání souborů na základě časových razítek.

To je důvod, proč v Linuxu používáme příkaz find, který se používá k vyhledávání souborů a složek na základě různých parametrů. Jde o komplexní příkaz, který lze použít k vyhledávání s parametry, jako je název souboru, velikost, typ souboru atd.

V příkazu najít je možnost vyhledávat soubory podle toho, jak jsou staré, a dnes si ukážeme, jak používat najít a rm společně smazat soubory starší než zadaný počet dní.

Najít soubory starší než N dní

Použijeme argument '-atime' příkazu find k vyhledání souborů starších než N dny, tj. poslední přístup před alespoň N dnů.

$ find <directory_path> -atime +<N>
$ find . -atime +3

V aktuálním jsou dva soubory, které byly naposledy otevřeny nejméně před 4 dny. Použijme ‘stat ‘ příkaz k ověření:

$ stat tmp2 tmp3

Jak vidíte, soubory jsou 4 a 5 dní staré resp. Všimněte si, že program ignoruje jakoukoli zlomkovou část časového razítka při výpočtu, jak starý je soubor; proto například, když mají být specifikovány soubory starší než 4 dny nebo více, uvedeme +3 .

Smazat soubory starší než N dní

Nakonec zavolejte příkaz rm s argumentem '-exec' k odstranění těchto souborů.

$ find . -atime +3 -exec rm {} \;

Tedy dva soubory ‘tmp2 “ a „tmp3 “ byly smazány.

Závěr

V tomto článku jsme viděli, jak odstranit soubory starší než stanovený počet dní v Linuxu. Jak možná víte, v souborových systémech Linux (a Unix) není zachována doba vytvoření souboru. Tři časová razítka udržovaná pro soubor jsou; jeho čas posledního přístupu, čas poslední úpravy a čas poslední změny stavu.

Zde jsme zvažovali poslední přístupový čas pro vyhledávání souborů. Uživatelé si také mohou vybrat, zda přejít na čas úpravy nebo změny stavu:jednoduše použijte možnosti '-mtime' nebo '-ctime' respektive namísto '-atime' a zbytek syntaxe zůstává stejný.

Děkuji za přečtení! Dejte nám vědět své myšlenky v komentářích níže!


Linux
  1. Jak vytvořit Cron Job, která automaticky odstraní soubory, které jsou starší než 30 dní?

  2. Jak najít soubory upravené za posledních 30 dní v Linuxu?

  3. Jak odstranit soubory, které jsou starší než n dní BEZ použití příkazu find

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

  2. Jak vytvořit tar pro soubory starší než 7 dní pomocí skriptování linuxového shellu

  3. Bash skript pro odstranění souborů starších než x dní s podadresáři

  1. Jak najít soubory větší nebo menší než X v Linuxu

  2. Jak najít duplicitní soubory v Linuxu

  3. Linux:pomocí funkce find vyhledejte soubory starší než <datum>