GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Mendaftar File Termuda N (tanpa Parsing Ls!)?

Jadi saya tahu parsing ls buruk!.

Hari ini saya menemukan nugget ini:

FILENAME=`ls -t $READ_FOLDER | head -1`

Jadi saya percaya awalnya ini dirancang untuk mengambil nama file terbaru, saya sebenarnya sekarang ingin mengadaptasinya, untuk mengambil mungkin 5 file terbaru karena proses yang memeriksanya agak lambat, jadi kami tidak dapat memastikan bahwa file tersebut telah diproses.

Saya bekerja di bash, tetapi tidak menentang solusi umum sh juga.

Jawaban yang Diterima:

Anda dapat menggunakan GNU find untuk membuat daftar file dengan waktu modifikasi yang dinyatakan sebagai waktu epoch, lalu gunakan sort untuk mengurutkan daftar, akhirnya head dan tail untuk mendapatkan nama file bernomor yang diinginkan :

find . -maxdepth 1 -type f -printf '%[email protected] %pn' | sort -k1,1nr | head -5 | tail -1

Linux
  1. Basa'?

  2. Bagaimana Cara Membuka Kunci File Rar Kata Sandi yang Terkunci Tanpa Mengetahui Kata Sandi?

  3. Bagaimana cara mendaftar ukuran setiap file dan direktori dan mengurutkan berdasarkan ukuran menurun di Bash?

  1. Cara Menggunakan Perintah Tar di Linux

  2. Bagaimana cara mengarahkan output dari system() ke file?

  3. Bagaimana saya bisa membuat daftar file dalam arsip zip tanpa mendekompresinya?

  1. Cara Mendaftar Ketergantungan Paket Di Linux

  2. Bagaimana cara menambahkan baris baru ke akhir file?

  3. Bagaimana cara menambahkan output ke file?