GNU/Linux >> Znalost Linux >  >> Linux

Jak rekurzivně vypisovat soubory a třídit je podle času úpravy?

Použijte find 's -printf a seřadit podle přiměřeného formátu data:

find -type f -printf '%T+\t%p\n' | sort -n

To by mělo minimalizovat rozvětvení procesů, a tak být nejrychlejší.

Příklady, pokud se vám nelíbí zlomková druhá část (která stejně často není implementována v systému souborů):

find -type f -printf '%T+\t%p\n' | sed 's/\.[[:digit:]]\{10\}//' | sort -n
find -type f -printf '%T+\t%p\n' | cut --complement -c 20-30 | sort -n

UPRAVIT: Standardní find na Macu nemá -printf . Není však obtížné nainstalovat GNU find na Mac (viz také tento odkaz pro další upozornění týkající se kompatibility Mac/Linux a xargs ).


Zde je metoda využívající stat jak navrhl @johnshen64

find . -type f -exec stat -f "%m%t%Sm %N" '{}' \; | sort -rn | head -20 | cut -f2-

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

  2. Jak najít konfigurační soubory MySQL, PHP a Apache

  3. Jak zjistit počet souborů v adresáři a podadresářích

  1. Jak vyhledávat a odstraňovat adresáře rekurzivně v systému Linux

  2. Jak najít velké soubory linux pomocí příkazů find a du

  3. Jak zobrazit seznam souborů, které byly změněny v určitém časovém rozmezí?

  1. Jak mohu rekurzivně vypsat seznam všech adresářů na místě, nejprve na šířku?

  2. Jak získat všechny soubory přesahující určitou velikost a smazat je

  3. Jak vypsat všechny soubory oddílu na linuxu?