GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:ottenere file per la data corrente in Linux?

Di solito la date +%d restituisce l'output 08 per la data corrente, 08/10/2017. Ma quando eseguo ls -lrt su un percorso, il formato della data è come Oct 8 15:03 , quindi, come ottengo i file della data corrente?

Sto usando il comando

ls -lrt XYZ.LOG* |grep "$(date +'%b %d')" |awk '{print $9}'

ma non mi dà il file della data odierna (08/10/2017) anche se mi dà un output corretto per le date 10 - 31 di qualsiasi mese.

Risposta accettata:

Questo è un po' barare, ma funziona.

Per prima cosa crea un file di riferimento vuoto con un timestamp specifico, ovvero mezzanotte:

touch -d "$(date +%FT00:00:00)" /tmp/midnight

Quindi trova i file più recenti di questo file:

find . -type f -newer /tmp/midnight

Se vuoi ls -come output da find piuttosto che solo i nomi dei percorsi:

find . -type f -newer /tmp/midnight -ls

Se vuoi trovare i file che corrispondono al modello XYZ.LOG* :

find . -type f -name 'XYZ.LOG*' -newer /tmp/midnight -ls

Se hai GNU find , puoi ignorare il file temporaneo e utilizzare

find . -type f -newermt 0

per ottenere file modificati dalla mezzanotte.

Correlati:perché *non* analizza `ls`?


Linux
  1. Trova i file e le directory più grandi in Linux

  2. Come verificare la presenza di file di grandi dimensioni nella console

  3. Come trovare l'applicazione per un tipo Mime su Linux?

  4. Usa Trova e trova per cercare file in Linux

  5. Copia di file in base alla data di modifica in Linux

Trova file di grandi dimensioni in Linux

Come trovare i file usando la riga di comando nel terminale Linux

Come trovare ed elencare in modo ricorsivo i file per data in Linux

Trucchi di formattazione per il comando data di Linux

Come cercare file dalla riga di comando di Linux

Come trovare file con il comando fd in Linux