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 ftrouve 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%pest le chemin du nom de fichier et\nest le caractère de nouvelle ligne- pour plus d'informations, voir
man find
|est un shellpipe(voirman bashrubriquePipelines)sort -nsignifie 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 lecaractère puis d'imprimer tous les jetons à partir du deuxième jeton (voirman cut)- REMARQUE :
-f 2n'imprimerait que le deuxième jeton
- REMARQUE :
tail -n 1signifie 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.