Come trovare e ordinare i file in base alla data e all’ora di modifica in Linux

Di solito, abbiamo l’abitudine di salvare molte informazioni sotto forma di file sul nostro sistema. Alcuni file sono nascosti, alcuni sono conservati in una cartella separata creata per facilitare la nostra comprensione, mentre altri sono lasciati così come sono. Ma, questo intero materiale riempie le nostre directory; di solito il desktop, facendolo sembrare un disastro. Ma, il problema sorge quando dobbiamo cercare un file particolare modificato in una data e ora particolari in questa enorme collezione.

Find and Sort Files by Date and Time in Linux

Le persone a loro agio con le GUI possono trovarlo usando il File Manager, che elenca i file in formato di elenco lungo, rendendo facile capire cosa volevamo, ma quegli utenti abituati agli schermi neri, o anche chiunque lavori su server privi di GUI vorrebbe un semplice comando o un insieme di comandi che potrebbero facilitare la loro ricerca.

La vera bellezza di Linux si mostra qui, poiché Linux ha una collezione di comandi che, se usati separatamente o insieme, possono aiutare a cercare un file, o ordinare una collezione di file in base al loro nome, data di modifica, ora di creazione, o anche qualsiasi filtro che potresti pensare di applicare per ottenere il tuo risultato.

Qui, sveleremo la vera forza di Linux esaminando un insieme di comandi che possono aiutare a ordinare un file o anche un elenco di file per Data e Ora.

Utilità Linux per ordinare file in Linux

Alcuni semplici utilità della linea di comando Linux che sono sufficienti per ordinare una directory in base a Data e Ora sono:

comando ls

ls – Elenco dei contenuti della directory, questa utility può elencare file e directory e può anche elencare tutte le informazioni di stato su di essi, inclusa: data e ora di modifica o accesso, autorizzazioni, dimensioni, proprietario, gruppo, ecc.

Abbiamo già coperto molti articoli sul comando ls di Linux e sul comando sort, puoi trovarli qui sotto:

  1. Impara il comando ls con 15 esempi di base
  2. Impara 7 comandi avanzati di ls con esempi
  3. 15 domande utili sull’intervista sul comando ls in Linux

comando sort

sort – Questo comando può essere utilizzato per ordinare l’output di qualsiasi ricerca in base a qualsiasi campo o a una colonna particolare del campo.

Abbiamo già trattato due articoli sul comando sort di Linux, puoi trovarli qui sotto:

  1. 14 esempi del comando ‘sort’ di Linux – Parte 1
  2. 7 esempi utili del comando ‘sort’ di Linux – Parte 2

Alcuni modi per ordinare file in base a data e ora

Di seguito sono elencati i comandi per l’ordinamento in base a data e ora.

1. Elencare i file in base all’ora dell’ultima modifica

Il comando seguente elenca i file in formato di elenco lungo ed ordina i file in base all’ora dell’ultima modifica, più recente per prima. Per ordinare in ordine inverso, utilizzare l’interruttore '-r' con questo comando.

# ls -lt

total 673768
-rwxr----- 1 tecmint tecmint  3312130 Jan 19 15:24 When You Are Gone.MP3
-rwxr----- 1 tecmint tecmint  4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony-1.mp3
-rwxr----- 1 tecmint tecmint  4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony.mp3
-rwxr----- 1 tecmint tecmint  6629090 Jan 19 15:24 Westlife_Tonight.MP3
-rwxr----- 1 tecmint tecmint  3448832 Jan 19 15:24 We Are The World by USA For Africa (Michael Jackson).mp3
-rwxr----- 1 tecmint tecmint  8580934 Jan 19 15:24 This Love.mp3
-rwxr----- 1 tecmint tecmint  2194832 Jan 19 15:24 The Cross Of Changes.mp3
-rwxr----- 1 tecmint tecmint  5087527 Jan 19 15:24 T.N.T. For The Brain 5.18.mp3
-rwxr----- 1 tecmint tecmint  3437100 Jan 19 15:24 Summer Of '69.MP3
-rwxr----- 1 tecmint tecmint  4360278 Jan 19 15:24 Smell Of Desire.4.32.mp3
-rwxr----- 1 tecmint tecmint  4582632 Jan 19 15:24 Silence Must Be Heard 4.46.mp3
-rwxr----- 1 tecmint tecmint  4147119 Jan 19 15:24 Shadows In Silence 4.19.mp3
-rwxr----- 1 tecmint tecmint  4189654 Jan 19 15:24 Sarah Brightman  & Enigma - Eden (remix).mp3
-rwxr----- 1 tecmint tecmint  4124421 Jan 19 15:24 Sade - Smooth Operator.mp3
-rwxr----- 1 tecmint tecmint  4771840 Jan 19 15:24 Sade - And I Miss You.mp3
-rwxr----- 1 tecmint tecmint  3749477 Jan 19 15:24 Run To You.MP3
-rwxr----- 1 tecmint tecmint  7573679 Jan 19 15:24 Roger Sanchez_Another Chance_Full_Mix.mp3
-rwxr----- 1 tecmint tecmint  3018211 Jan 19 15:24 Principal Of Lust.3.08.mp3
-rwxr----- 1 tecmint tecmint  5688390 Jan 19 15:24 Please Forgive Me.MP3
-rwxr----- 1 tecmint tecmint  3381827 Jan 19 15:24 Obvious.mp3
-rwxr----- 1 tecmint tecmint  5499073 Jan 19 15:24 Namstey-London-Viraaniya.mp3
-rwxr----- 1 tecmint tecmint  3129210 Jan 19 15:24 MOS-Enya - Only Time (Pop Radio mix).m

2. Elencare i file in base all’ora dell’ultimo accesso

Elenco di file nella directory in base all’ora dell’ultimo accesso, ovvero in base al momento in cui è stato effettuato l’ultimo accesso al file, non alla modifica.

# ls -ltu

total 3084272
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:24 Music
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Linux-ISO
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Music-Player
drwx------  3 tecmint tecmint       4096 Jan 19 15:22 tor-browser_en-US
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 bin
drwxr-xr-x 11 tecmint tecmint       4096 Jan 19 15:22 Android Games
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Songs
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 renamefiles
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 katoolin-master
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Tricks
drwxr-xr-x  3 tecmint tecmint       4096 Jan 19 15:22 Linux-Tricks
drwxr-xr-x  6 tecmint tecmint       4096 Jan 19 15:22 tuptime
drwxr-xr-x  4 tecmint tecmint       4096 Jan 19 15:22 xdm
drwxr-xr-x  2 tecmint tecmint      20480 Jan 19 15:22 ffmpeg usage
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 xdm-helper

3. Elencare i file in base all’ora dell’ultima modifica

Elenco di file nella directory in base all’ora dell’ultima modifica del tempo di stato del file, o del 'ctime'. Questo comando elenca per primo il file il cui qualsiasi informazione di stato come: proprietario, gruppo, permessi, dimensioni, ecc. è stato modificato di recente.

# ls -ltc

total 3084272
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:24 Music
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 13:05 img
-rw-------  1 tecmint tecmint     262191 Jan 19 12:15 tecmint.jpeg
drwxr-xr-x  5 tecmint tecmint       4096 Jan 19 10:57 Desktop
drwxr-xr-x  7 tecmint tecmint      12288 Jan 18 16:00 Downloads
drwxr-xr-x 13 tecmint tecmint       4096 Jan 18 15:36 VirtualBox VMs
-rwxr-xr-x  1 tecmint tecmint        691 Jan 13 14:57 special.sh
-rw-r--r--  1 tecmint tecmint     654325 Jan  4 16:55 powertop-2.7.tar.gz.save
-rw-r--r--  1 tecmint tecmint     654329 Jan  4 11:17 filename.tar.gz
drwxr-xr-x  3 tecmint tecmint       4096 Jan  4 11:04 powertop-2.7
-rw-r--r--  1 tecmint tecmint     447795 Dec 31 14:22 Happy-New-Year-2016.jpg
-rw-r--r--  1 tecmint tecmint         12 Dec 18 18:46 ravi
-rw-r--r--  1 tecmint tecmint       1823 Dec 16 12:45 setuid.txt
...

Se viene utilizzata l’interruttore '-a' con i comandi sopra, possono elencare ed ordinare anche i file nascosti nella directory corrente e l’interruttore '-r' elenca l’output in ordine inverso.

Per un’ulteriore suddivisione, ad esempio l’ordinamento dell’Output del comando find, tuttavia, ls può anche essere utilizzato, ma risulta più utile sort poiché l’output potrebbe non contenere solo il nome del file, ma qualsiasi campo desiderato dall’utente.

I comandi mostrati qui sotto mostrano l’uso di sort con il comando find per ordinare l’elenco dei file in base a Data e Ora.

Per imparare di più sul comando find, segui questo link: 35 Esempi pratici del comando ‘find’ in Linux

4. Ordinare file in base al Mese

Qui, usiamo il comando find per trovare tutti i file nella directory radice (‘/’) e quindi stampare il risultato come: Mese in cui il file è stato accesso e poi il nome del file. Di quel risultato completo, qui elenciamo le prime 11 voci.

# find / -type f -printf "\n%Ab %p" | head -n 11

Dec /usr/lib/nvidia/pre-install
Dec /usr/lib/libcpufreq.so.0.0.0
Apr /usr/lib/libchromeXvMCPro.so.1.0.0
Apr /usr/lib/libt1.so.5.1.2
Apr /usr/lib/libchromeXvMC.so.1.0.0
Apr /usr/lib/libcdr-0.0.so.0.0.15
Dec /usr/lib/msttcorefonts/update-ms-fonts
Nov /usr/lib/ldscripts/elf32_x86_64.xr
Nov /usr/lib/ldscripts/elf_i386.xbn
Nov /usr/lib/ldscripts/i386linux.xn

Il comando seguente ordina l’output usando la chiave come primo campo, specificato da '-k1' e poi lo ordina per Mese come specificato da 'M' davanti a esso.

# find / -type f -printf "\n%Ab %p" | head -n 11 | sort -k1M

Apr /usr/lib/libcdr-0.0.so.0.0.15
Apr /usr/lib/libchromeXvMCPro.so.1.0.0
Apr /usr/lib/libchromeXvMC.so.1.0.0
Apr /usr/lib/libt1.so.5.1.2
Nov /usr/lib/ldscripts/elf32_x86_64.xr
Nov /usr/lib/ldscripts/elf_i386.xbn
Nov /usr/lib/ldscripts/i386linux.xn
Dec /usr/lib/libcpufreq.so.0.0.0
Dec /usr/lib/msttcorefonts/update-ms-fonts
Dec /usr/lib/nvidia/pre-install

5. Ordinare file in base alla Data

Qui, di nuovo usiamo il comando find per trovare tutti i file nella directory radice, ma questa volta stamperemo il risultato come: ultima data in cui il file è stato accesso, ultima ora in cui il file è stato accesso e poi il nome del file. Da questo ne prendiamo le prime 11 voci.

# find / -type f -printf "\n%AD %AT %p" | head -n 11

12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install
12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

Il comando di ordinamento seguente prima ordina in base all’ultima cifra dell’anno, poi ordina in base all’ultima cifra del mese in ordine inverso e infine ordina in base al primo campo. Qui, ‘1.8‘ significa la ottava colonna del primo campo e ‘n’ davanti a esso significa ordinamento numerico, mentre ‘r’ indica l’ordinamento in ordine inverso.

# find / -type f -printf "\n%AD %AT %p" | head -n 11 | sort -k1.8n -k1.1nr -k1

12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install
12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0

6. Ordinare file in base all’Ora

Ecco, di nuovo usiamo il comando trova per elencare i primi 11 file nella directory radice e stampare il risultato nel formato: l’ultima volta che il file è stato accesso e poi il nome del file.

# find / -type f -printf "\n%AT %p" | head -n 11

11:30:38.0000000000 /usr/lib/nvidia/pre-install
10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

Il comando sottostante ordina l’output in base alla prima colonna del primo campo dell’output, che è il primo cifra dell’ora.

# find / -type f -printf "\n%AT %p" | head -n 11 | sort -k1.1n

06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11:30:38.0000000000 /usr/lib/nvidia/pre-install
12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

7. Ordinamento dell’output di ls -l in base alla data

Questo comando ordina l’output del comando 'ls -l' basandosi sul sesto campo in ordine mensile, quindi sul settimo campo che è la data, in modo numerico.

# ls -l | sort -k6M -k7n

total 116
-rw-r--r-- 1 root root     0 Oct  1 19:51 backup.tgz
drwxr-xr-x 2 root root  4096 Oct  7 15:27 Desktop
-rw-r--r-- 1 root root 15853 Oct  7 15:19 powertop_report.csv
-rw-r--r-- 1 root root 79112 Oct  7 15:25 powertop.html
-rw-r--r-- 1 root root     0 Oct 16 15:26 file3
-rw-r--r-- 1 root root    13 Oct 16 15:17 B
-rw-r--r-- 1 root root    21 Oct 16 15:16 A
-rw-r--r-- 1 root root    64 Oct 16 15:38 C

Conclusione

Allo stesso modo, avendo una certa conoscenza del comando sort, puoi ordinare quasi qualsiasi elenco in base a qualsiasi campo e anche a qualsiasi colonna desideri. Questi erano alcuni trucchi per aiutarti a ordinare i file in base alla data o all’ora. Puoi creare i tuoi trucchi basati su questi. Tuttavia, se hai qualche altro trucco interessante, puoi sempre menzionarlo nei tuoi commenti.

Source:
https://www.tecmint.com/find-and-sort-files-modification-date-and-time-in-linux/