GNU/Linux >> Znalost Linux >  >> Linux

Jak v linuxovém terminálu zobrazím datum poslední změny složky s ohledem na její obsah?

Něco jako:

find /path/ -type f -exec stat \{} --printf="%y\n" \; | 
     sort -n -r | 
     head -n 1

Vysvětlení:

  • příkaz find vypíše čas změny pro každý soubor rekurzivně ignorující adresáře (podle komentáře IQAndrease se nemůžete spolehnout na časová razítka složek)
  • seřadit -n (číselně) -r (zpětně)
  • head -n 1:získat první položku

Pokud máte verzi find (například GNU find ), který podporuje -printf pak není potřeba volat stat opakovaně:

find /some/dir -printf "%T+\n" | sort -nr | head -n 1

nebo

find /some/dir -printf "%TY-%Tm-%Td %TT\n" | sort -nr | head -n 1

Pokud však rekurzi nepotřebujete:

stat --printf="%y\n" *

Kdybych mohl, hlasoval bych pro odpověď Paula. Vyzkoušel jsem to a pochopil koncept. Mohu potvrdit, že to funguje. find příkaz může mít na výstupu mnoho parametrů. Například do --printf přidejte následující klauzule:

%a for attributes in the octal format
%n for the file name including a complete path

Příklad:

find Desktop/ -exec stat \{} --printf="%y %n\n" \; | sort -n -r | head -1
2011-02-14 22:57:39.000000000 +0100 Desktop/new file

Dovolte mi také položit tuto otázku:Chce autor této otázky vyřešit svůj problém pomocí Bash nebo PHP? To by mělo být specifikováno.


Linux
  1. Jak otevírat a zavírat adresáře v terminálu Linux

  2. Jak změnit barvu vašeho terminálu Linux

  3. Jak přenést výsledky 'najít' do mv v Linuxu

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

  2. Jak vyhledávat na webu z terminálu v systému Linux

  3. Jak zjistit, zda je disk SSD nebo HDD v Linuxu

  1. Jak zjistit nainstalovanou verzi Redhat Linuxu

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

  3. Linux – Jak zobrazit typ souborového systému přes terminál?