Comment trouver et trier des fichiers en fonction de la date et de l’heure de modification sous Linux
Habituellement, nous avons l’habitude d’enregistrer beaucoup d’informations sous forme de fichiers sur notre système. Certains, des fichiers cachés, d’autres conservés dans un dossier séparé créé pour notre facilité de compréhension, tandis que d’autres tels quels. Mais, tout cela remplit nos annuaires ; généralement un ordinateur de bureau, ce qui donne l’impression d’être en désordre. Mais, le problème se pose lorsque nous devons rechercher un fichier particulier modifié à une date et une heure particulières dans cette énorme collection.
Les personnes à l’aise avec les interfaces graphiques peuvent le trouver à l’aide du Gestionnaire de fichiers, qui répertorie les fichiers au format de longue liste, ce qui permet de comprendre facilement ce que nous voulions, mais les utilisateurs ayant l’habitude des écrans noirs, ou même toute personne travaillant sur des serveurs dépourvus d’interfaces graphiques, voudraient une commande simple ou un ensemble de commandes qui pourraient faciliter leur recherche.
La vraie beauté de Linux se voit ici, car Linux dispose d’une collection de commandes qui, si elles sont utilisées séparément ou ensemble, peuvent aider à rechercher un fichier, ou trier une collection de fichiers en fonction de leur nom, date de modification, heure de création, ou même de tout filtre que vous pourriez envisager d’appliquer pour obtenir votre résultat.
Ici, nous allons dévoiler la véritable force de Linux en examinant un ensemble de commandes qui peuvent aider à trier un fichier ou même une liste de fichiers par date et heure.
Utilitaires Linux pour trier les fichiers sous Linux
Voici quelques utilitaires de ligne de commande Linux de base qui sont tout juste suffisants pour trier un répertoire en fonction de la date et de l’heure :
Commande ls
ls - En listant le contenu du répertoire, cet utilitaire peut répertorier les fichiers et les répertoires et peut même répertorier toutes les informations d’état les concernant, y compris : la date et l’heure de la modification ou de l’accès, les autorisations, la taille, le propriétaire, le groupe, etc.
Nous avons déjà couvert de nombreux articles sur la commande Linux ls et la commande de tri, vous pouvez les trouver ci-dessous :
- Apprenez ls Command avec 15 exemples de base
- Apprenez 7 commandes avancées avec des exemples
- 15 questions d’entretien utiles sur la commande ls sous Linux
Commande de tri
sort – Cette commande peut être utilisée pour trier le résultat de n’importe quelle recherche par n’importe quel champ ou n’importe quelle colonne particulière du champ.
Nous avons déjà couvert deux articles sur la commande de tri Linux, vous pouvez les trouver ci-dessous :
- 14 exemples de commandes Linux 'sort' - Partie 1
- 7 exemples utiles de commandes Linux « sort » - Partie 2
Ces commandes sont en elles-mêmes des commandes très puissantes à maîtriser si vous travaillez sur des écrans noirs et que vous devez gérer beaucoup de fichiers, histoire d’obtenir celui que vous voulez.
Quelques façons de trier les fichiers à l’aide de la date et de l’heure
Vous trouverez ci-dessous la liste des commandes à trier en fonction de la date et de l’heure.
1. Répertorier les fichiers en fonction du temps de modification
La commande ci-dessous répertorie les fichiers au format longue liste et trie les fichiers en fonction de l’heure de modification, le plus récent en premier. Pour trier dans l'ordre inverse, utilisez l'option '-r' avec cette commande.
# 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. Répertorier les fichiers en fonction de l’heure du dernier accès
Liste des fichiers dans le répertoire en fonction de l’heure du dernier accès, c’est-à-dire en fonction de l’heure du dernier accès au fichier, non modifié.
# 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. Répertorier les fichiers en fonction de l’heure de la dernière modification
Liste des fichiers dans le répertoire basée sur l'heure de la dernière modification des informations d'état du fichier, ou le 'ctime'. Cette commande listerait d’abord ce fichier dont les informations de statut telles que : propriétaire, groupe, permissions, taille, etc. ont été récemment modifiées.
# 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
...
Si l'option '-a' est utilisée avec les commandes ci-dessus, elles peuvent lister et trier même les fichiers cachés dans le répertoire courant, et l'option '-r' liste la sortie dans l'ordre inverse.
Pour un tri plus approfondi, comme le tri sur la sortie de la commande find, cependant, ls peut également être utilisé, mais là 'sort' s'avère plus utile car la sortie peut non seulement avoir le nom de fichier mais tous les champs souhaités par l'utilisateur.
Les commandes ci-dessous montrent l’utilisation de sort avec la commande find pour trier la liste des fichiers en fonction de la date et de l’heure.
Pour en savoir plus sur la commande find, suivez ce lien : 35 exemples pratiques de la commande 'find' sous Linux
4. Tri des fichiers en fonction du mois
Ici, nous utilisons la commande find pour trouver tous les fichiers dans le répertoire racine ('/'), puis nous imprimons le résultat comme suit : Mois au cours duquel le fichier a été consulté, puis nom du fichier. De ce résultat complet, nous énumérons ici les 11 meilleures entrées.
# 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
La commande ci-dessous trie la sortie à l'aide de key comme premier champ, spécifié par '-k1', puis elle trie sur le mois comme spécifié par 'M' devant elle.
# 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. Trier les fichiers en fonction de la date
Ici, nous utilisons à nouveau la commande find pour trouver tous les fichiers dans le répertoire racine, mais maintenant nous allons imprimer le résultat comme suit : la dernière date à laquelle le fichier a été consulté, la dernière fois que le fichier a été consulté et ensuite le nom du fichier. De ce nombre, nous retirons les 11 premières entrées.
# 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
La commande de tri ci-dessous trie d’abord sur la base du dernier chiffre de l’année, puis trie sur la base du dernier chiffre du mois dans l’ordre inverse et enfin trie sur la base du premier champ. Ici, « 1,8 » signifie la 8e colonne du premier champ et « n » devant lui signifie le tri numérique, tandis que « r » indique le tri dans l’ordre inverse.
# 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. Tri des fichiers en fonction du temps
Ici, encore une fois, nous utilisons la commande find pour lister les 11 premiers fichiers dans le répertoire racine et afficher le résultat dans le format : dernière fois que le fichier a été consulté, puis nom du fichier.
# 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
La commande ci-dessous trie la sortie en fonction de la première colonne du premier champ de la sortie, qui est le premier chiffre de l’heure.
# 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. Tri de ls -l en fonction de la date
Cette commande trie la sortie de la commande 'ls -l'en fonction du 6ème champ par mois, puis en fonction du 7ème champ qui est la date, numériquement.
# 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
Conclusion
De même, en ayant une certaine connaissance de la commande de tri, vous pouvez trier presque n’importe quelle liste en fonction de n’importe quel champ et même de n’importe quelle colonne que vous désirez. Voici quelques-unes des astuces pour vous aider à trier les fichiers en fonction de la date ou de l’heure. Vous pouvez avoir vos propres astuces basées sur ceux-ci. Cependant, si vous avez une autre astuce intéressante, vous pouvez toujours le mentionner dans vos commentaires.
