Voici un moyen propre et robuste pour sort | head
par date :
Utilisation de ls -l
pour un joli imprimé
find . ! -type d -printf "%T@ %p\0" |
sort -zrn |
head -zn 10 |
sed -z 's/^[0-9.]\+ //' |
xargs -0 ls -lt
En tant que bash fonction :
findByDate() {
local humansize=''
[ "$1" = "-h" ] && humansize='h' && shift
find . ${2:-! -type d} -printf "%T@ %p\0" |
sort -zrn |
head -zn ${1:--0} |
sed -z 's/^[0-9.]\+ //' |
xargs -0 ls -dlt${humansize}
}
On peut l'exécuter avec un ou deux arguments, ou même sans :
Usage: findByDate [-h] [lines] [find options]
Échantillon :
findByDate
Listera tous les non répertoires triées par date. Nota :
Même sur un grand arbre de système de fichiers, comme xargs
recevoir une liste déjà triée, l'ordre des fichiers reste correct, même si ls
doit être exécuté plusieurs fois.
findByDate -h 12
Je vais énumérer 12 autres récents non répertoires triées par date, avec la taille imprimée en lisible par l'homme formulaire
findByDate 42 '-type l'
Listera 42 liens symétriques plus récents
findByDate -0 '( -type l -o -type b -o -type s -o -type c )'
Listera tous les liens symboliques, les périphériques de bloc, les sockets et les périphériques de caractères, triés par date.
Inversion de l'ordre
Remplacement de head
par tail
et changer l'interrupteur de sort
y ls
:
findByDate() {
local humansize=''
[ "$1" = "-h" ] && humansize='h' && shift
find . ${2:-! -type d} -printf "%T@ %p\0" |
sort -zn |
tail -zn ${1:-+0} |
sed -z 's/^[0-9.]\+ //' |
xargs -0 ls -dltr${humansize}
}
Même fonction, même usage :
Usage: findByDate [-h] [lines] [find options]
0 votes
github.com/shadkam/recentmost ferait ce que l'on souhaite, mais il faut le construire.