Daftar menurun dipesan berdasarkan waktu modifikasi file

3

Bagaimana saya bisa menghasilkan daftar file dalam direktori [misalnya, "/ mnt / hdd / PUB /"] dipesan oleh waktu modifikasi file? [dalam urutan menurun, file tertua yang dimodifikasi ada di daftar akhir]

ls -A -lRtakan lebih bagus: https://pastebin.com/raw.php?i=AzuSVmrJ

Tetapi jika suatu file diubah dalam direktori, itu akan mencantumkan direktori lengkap, jadi tautan pastebined tidak baik [Saya tidak ingin daftar diurutkan berdasarkan "direktori", saya perlu daftar pesanan "per file"]

OS: OpenWrt [tanpa Perl -> tidak cukup ruang untuk itu :( + tidak ada perintah "stat", atau "file"].

LanceBaynes
sumber
Apakah kamu findpunya -printf? Ngomong-ngomong, jangan lupa menandai jawaban yang diterima saat Anda bisa dan meningkatkan suara sesering mungkin.
Dennis Williamson

Jawaban:

1

Gunakan temukan dan urutkan:

find YOUR_START_DIR -type f -print0 |
    xargs -r -0 ls -l | 
        sort -k 6.2,6.5nr \
             -k 6.7,6.8nr \
             -k 6.10,6.11nr \
             -k 7.2,7.3nr \
             -k 7.5,7.6nr

daftar panjang opsi k setelah sortir menentukan tahun, bulan, hari, jam dan menit sebagai kunci sortir dan pesan berdasarkan urutan itu.

File yang disimpan pada menit yang sama tidak akan dipesan. Jika Anda ingin turun ke detik dan lebih banyak lagi, tambahkan "--full-time" ke perintah ls, dan tambahkan kunci baru di akhir perintah sortir.

rem
sumber
Ini tergantung (seperti pipa OP) pada format output ls.
Dennis Williamson
Tentu, sepenuhnya tergantung pada format output ls.
rem
0

Inilah jawaban jelek yang sebagian berfungsi untuk saya di cygwin:

 ls -A -lRt --full-time | sort | uniq | grep -v '^total\|:$'
  • Daftar file secara rekursif, menampilkan stempel waktu lengkap untuk setiap file
  • macam mereka
  • membuang duplikat
  • Greps keluar beberapa entri non-file seperti "total file di direktori X" dan baris header untuk file yang sedang Anda rekam.
Daniel J. Pritchett
sumber
sort -ubukannyasort | uniq
Dennis Williamson
1
Ini tidak berhasil untuk saya. Melakukannya dengan cara ini, pengurutan akan sesuai abjad dari awal baris.
rem
@rem Cukup ... saya menghabiskan satu atau dua jam untuk mengubahnya dan belajar sedikit tentang regex dan sed (dan urutkan -k) di sepanjang jalan. Namun tidak pernah mendapatkan solusi yang sempurna.
Daniel J. Pritchett
0

"Mengubah" file di direktori mungkin memperbarui waktu modifikasi direktori. Tetapi jika Anda tidak tertarik dengan direktori, ambil mereka:

ls -AlRt | egrep -v '^d'
mpez0
sumber