Ada cara sort | head
tanggal yang bersih dan kuat :
Menggunakan ls -l
untuk mencetak cantik
find . ! -type d -printf "%T@ %p\0" |
sort -zrn |
head -zn 10 |
sed -z 's/^[0-9.]\+ //' |
xargs -0 ls -lt
Sebagai fungsi bash :
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}
}
Ini bisa dijalankan dengan satu atau dua argumen, atau bahkan tanpa:
Usage: findByDate [-h] [lines] [find options]
Sampel:
findByDate
Akan mencantumkan semua direktori non diurutkan berdasarkan tanggal. Tidak a:
Bahkan pada pohon sistem file besar, seperti xargs
daftar yang sudah diurutkan, pesanan file tetap benar, bahkan jika ls
harus dijalankan berkali-kali.
findByDate -h 12
Akan menampilkan 12 direktori terbaru bukan diurutkan berdasarkan tanggal, dengan ukuran dicetak dalam bentuk yang dapat dibaca manusia
findByDate 42 '-type l'
Akan mencantumkan 42 lebih banyak symlink terbaru
findByDate -0 '( -type l -o -type b -o -type s -o -type c )'
Akan mencantumkan semua symlink, perangkat blok, perangkat soket dan karakter, diurutkan berdasarkan tanggal.
Pesanan pembalikan
Mengganti head
oleh tail
dan mengubah saklar dari sort
dan 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}
}
Fungsi yang sama, penggunaan yang sama:
Usage: findByDate [-h] [lines] [find options]