Saya diberitahu bahwa inilah solusinya:
find . -type f -printf "%[email protected] %p\n" | sort -rn | head -n 10
Titik kuncinya adalah printf %[email protected]
placeholder, yaitu -ctime
satu. Saya menemukannya dengan membaca man find
.
Hasil:
1336992789.0000000000 ./Mobilni Telefoni/05. iPhone/03. iPhone 4G Firmware/5.1.1/iPhone3,1_5.1.1_9B206_Restore.ipsw.filepart
1336928538.0000000000 ./GPS Navigacije/01. Garmin/03. Garmin Other/test.txt
1336922295.0000000000 ./GPS Navigacije/01. Garmin/03. Garmin Other/garmin_kgen_15.exe
1336868365.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2152/E2152_XXJH4_OXFJI2.zip.filepart
1336867426.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E210/E210_XFGH2.rar
1336866301.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/FlashTool_E2_R6.zip
1336865921.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/E2330_OXFKE2.rar
1336865409.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_XXKC1_CDS.zip
1336865398.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_XXKC1_BIN.zip
1336864949.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_OXFKC1_CSC.zip
Untuk daftar file yang sangat besar, sort(1)
dengan pipa mungkin tidak optimal untuk penggunaan sumber daya.
sort(1)
bisa diganti dengan perl(1)
dan buffer sepuluh entri tertinggi saja. Ini telah diuraikan dalam perintah unix:cara mendapatkan catatan n teratas untuk tiga, di sini adopsi untuk sepuluh rekaman.
Ini menggantikan sort(1)
dan head(1)
filter:
find . -type f -printf "%[email protected] %p\n" | perl -ane '
BEGIN {@top = ([-1]) x 10}
if ($F[0] > $top[0][0]) {
@top = sort {$a->[0] <=> $b->[0]} @top[1..9], [$F[0], $_];
}
END {print for reverse map {$_->[1]} @top}
'
Hasilnya identik.