Il s'agit d'une version récursive (c'est-à-dire qu'elle trouve le fichier le plus récemment mis à jour dans un certain répertoire ou dans l'un de ses sous-répertoires)
find /dir/path -type f -printf "%[email protected] %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1
Brève explication simple de la ligne de commande :
find /dir/path -type f
trouve tous les fichiers dans le répertoire-printf "%[email protected] %p\n"
imprime une ligne pour chaque fichier où%[email protected]
est la seconde flottante depuis l'époque 1970 et%p
est le chemin du nom de fichier et\n
est le caractère de nouvelle ligne- pour plus d'informations, voir
man find
|
est un shellpipe
(voirman bash
rubriquePipelines
)sort -n
signifie trier sur la première colonne et traiter le jeton comme numérique au lieu de lexicographique (voirman sort
)cut -d' ' -f 2-
signifie diviser chaque ligne en utilisant leman cut
)- REMARQUE :
-f 2
n'imprimerait que le deuxième jeton
- REMARQUE :
tail -n 1
signifie imprimer la dernière ligne (voirman tail
)
ls -Art | tail -n 1
Cela renverra le dernier fichier ou répertoire modifié. Pas très élégant, mais ça marche.
Indicateurs utilisés :
-A
liste tous les fichiers sauf .
et ..
-r
ordre inverse lors du tri
-t
trier par heure, le plus récent en premier
ls -t | head -n1
Cette commande donne en fait le dernier fichier ou répertoire modifié dans le répertoire de travail actuel.