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.

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:
- Impara il comando ls con 15 esempi di base
- Impara 7 comandi avanzati di ls con esempi
- 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:
- 14 esempi del comando ‘sort’ di Linux – Parte 1
- 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/