Not: Bu GNU bulması için işe yarayacak, fakat diğerlerinin hepsi bulunmayacak.
find . -maxdepth 1 -size +20M -printf "%T@ %f\n" |
sort -nr | head -n 20 | sed 's/[^ ]\+ //'
@Rajish gibi başlayarak, ancak çıkış biçimini belirtmek için printf
komutunu kullanarak find
. Orada 3 zamanla ilgili formatlar şunlardır atime, ctime ve mtime - %T
mtime için olduğu, %A
ve %C
diğer formatlar içindir.
@
zaman biçimini dönemden bu yana saniye cinsinden belirtmektir. %f
dosya adı için, \n
2 dosya arasındaki yeni satır için.
Daha sonra sırayla numaraya göre sıralama, en genç dosyaları verir ve biz de 20 satır alırız head
.
Sonunda, sed
zaman bilgisini atmak için kullanılır.
¹) head
satır satır çalıştığından, adında 20'den fazla yeni satır bulunan ve biraz sıradışı olan ancak yasaklanmayan tek bir dosya, ilk 20 karşılaşmaya aitse çıktısını bozabilir. Eğer bu tür dosyalara sahipseniz, lütfen onlardan kurtulmaya çalışın - isimlerini değiştirmek için. Genellikle basit scriptler için bir problem olacaktır.
file
'ın-ls
komutu, özel karakterler ters eğik çizgi bulunan karakterleri olarak basılacaktır:find . -maxdepth 1 -size +20M -printf "%T@ " -ls | sort -nr | head -n 20 | sed 's/[^ ]\+ //'
. Ek olarak, biçim gibils -l
gözükecek, EoghanM da-l
yine belirtilmiş .