Recherche de site Web

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 :

  1. Apprenez ls Command avec 15 exemples de base
  2. Apprenez 7 commandes avancées avec des exemples
  3. 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 :

  1. 14 exemples de commandes Linux 'sort' - Partie 1
  2. 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.

Articles connexes: