Es gibt einen sauberen und robusten Weg, sort | head
nach Datum zu suchen:
Verwenden Sie ls -l
für einen schönen Druck
find . ! -type d -printf "%T@ %p\0" |
sort -zrn |
head -zn 10 |
sed -z 's/^[0-9.]\+ //' |
xargs -0 ls -lt
Als Bash- Funktion:
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}
}
Dies könnte mit einem oder zwei Argumenten ausgeführt werden oder sogar ohne:
Usage: findByDate [-h] [lines] [find options]
Stichprobe:
findByDate
Listet alle Nicht-Verzeichnisse nach Datum sortiert auf. Kein:
Sogar auf großen Dateisystembaum, wie xargs
bereits sortierte Liste erhalten, bleibt die Dateireihenfolge korrekt, auch wenn ls
muss oft ausgeführt werden.
findByDate -h 12
Listet 12 weitere Neuere auf, die keine Verzeichnisse sind, sortiert nach Datum, wobei die Größe in lesbarer Form gedruckt ist
findByDate 42 '-type l'
Wird 42 weitere symlinks auflisten
findByDate -0 '( -type l -o -type b -o -type s -o -type c )'
Listet alle Symlinks, Blockgeräte, Sockets und Zeichengeräte nach Datum sortiert auf.
Reihenfolge umkehren
Ersetzen head
durch tail
und wechseln von sort
und 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}
}
Gleiche Funktion, gleiche Nutzung:
Usage: findByDate [-h] [lines] [find options]