GNU/Linux >> Belajar Linux >  >> Linux

Linux menemukan perintah, temukan 10 file terbaru secara rekursif terlepas dari rentang waktu

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.


Linux
  1. 5 Alat Baris Perintah untuk Menemukan File dengan Cepat di Linux

  2. 25 Berguna menemukan Contoh Praktis Perintah di Linux

  3. Cara Menggunakan Perintah find Linux untuk Menemukan File

  1. Temukan file dan direktori di Linux dengan perintah find

  2. Temukan Waktu Eksekusi Perintah Atau Proses Di Linux

  3. Perintah Linux:Bagaimana cara 'menemukan' hanya file teks?

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Cara Menemukan File dengan Perintah fd di Linux

  3. Haruskah situs web berada di /var/ atau /usr/ sesuai dengan penggunaan yang disarankan?