Bonjour à tous,
Je souhaites savoir s'il existe un moyen permettant de trouver le fichier qui a été accéder le plus anciennement dans un répertoire via la commande find.
Merci d'avance
Bonjour à tous,
Je souhaites savoir s'il existe un moyen permettant de trouver le fichier qui a été accéder le plus anciennement dans un répertoire via la commande find.
Merci d'avance
Bonjour,
Pas directement d'un seul coup à ma connaissance, voir du côté de l' option atime de find :
http://man.developpez.com/man1/find/-atime n
dernier accès au fichier il y a n*24 heures.
« Developpez.com est un groupe international de bénévoles dont la motivation est l'entraide au sens large » (incl. forums developpez.net)
Club des professionnels en informatique
Liste des balises BB
Bonjour,
Non, find ne fait pas de tri...
Pour le coup, même si certain vont avoir leurs cheveux qui se hérissent en lisant ça, la commande ls te permet de trié une liste de fichier selon le time qui t’intéresse...
Donc , en gros la commande sera ls|grep|tail ou head:
le ls pour le tri
le grep pour le filtre sur le type de fichier
et le tail ou head pour ne garder que la dernière ou première ligne selon l'ordre du tri choisis
si on me cherche :
find pour la liste
Code : Sélectionner tout - Visualiser dans une fenêtre à part find ~ -type f -printf '%A@ %h%f\n' | sort -n -k1,1 | head -1 | cut -d ' ' -f2-
sort pour trier
head pour ne retenir que le premier
cut pour ne conserver que le nom du fichier
voilà, chacun fait ce qu'il a à faire.
ls...![]()
Yop !
Chez moi c'est mieux avecsinon le dernier "/", celui qui sépare la fin du chemin du nom du fichier saute...
Code : Sélectionner tout - Visualiser dans une fenêtre à part find ~ -type f -printf '%A@ %p\n' | sort -n -k1,1 | head -1 | cut -d ' ' -f2-
Ok, voici une version moins gourmande et plus rapide:
mais en fait, ton problème n'est pas totalement résolu car cela ne fonctionne pas dans tous les cas, je m'explique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part find ~ -type f -printf '%p %A@\n' | awk '$NF < A || NR ==1 {C=$0;A=$NF}END{$0=C;NF--;print}'
Résultat selon la version avec awk:
Résultat selon la version sort:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ find ~ -type f -printf '%p %A@\n' | awk '$NF < A || NR ==1 {C=$0;A=$NF}END{$0=C;NF--;print}' /home/disedorgue/.vim/snippets/mako.snippets
On pourrait croire que l'une des 2 est fausse, mais ce n'est pas le cas, voici les même commandes mais sans suppression du champs atime:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ find ~ -type f -printf '%A@ %p\n' | sort -n -k1,1 | head -1 | cut -d ' ' -f2- /home/disedorgue/.vim/snippets/autoit.snippets
Ici, comme on peut le voir, les 2 fichiers on le même atime... (et oui, c'est possible)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ find ~ -type f -printf '%A@ %p\n' | sort -n -k1,1 | head -1 1247498354.0000000000 /home/disedorgue/.vim/snippets/autoit.snippets $ find ~ -type f -printf '%p %A@\n' | awk '$NF < A || NR ==1 {C=$0;A=$NF}END{$0=C;print}' /home/disedorgue/.vim/snippets/mako.snippets 1247498354.0000000000![]()
Partager