Saya ingin mencari file dalam subdirektori yang diurutkan berdasarkan cap waktu, dengan yang terbaru terlebih dahulu.
Saya telah melihat halaman manual tetapi tampaknya hanya membiarkan Anda memfilter menurut timestamp daripada mengurutkan berdasarkan timestamp.
Opsi apa yang bisa saya berikan find
untuk mencapai ini? Bergantian, bagaimana saya bisa menggabungkannya dengan alat lain, suka sort
mengurutkan berdasarkan stempel waktu?
find
melakukan apa pun dalam urutan tertentu, selain memilih antara pencarian kedalaman-pertama dan pencarian luas-pertama.find
daripada yang dapat diteruskan ke satu contohls
.Jawaban:
Sementara solusi Paul umumnya OK, itu melibatkan lebih banyak I / O daripada hanya:
sumber
find
mengembalikan jutaan file? Bukankah akan mengurutkan semuanya sebagai satu daftar yang sangat panjang? Apakah masih akan efisien? (Alih-alih menyortir setiap direktori secara mandiri.)find bin/ -type f -printf '%Ts\t%p\0' | sort -nrz | cut -f2 -z | xargs -0 ls
Versi barucut
memiliki opsi -z, jadi nama file dengan baris baru akan berfungsi.xargs -0 ls -t
pendekatan tidak akan bekerja dengan benar ketika ada begitu banyak file yangxargs
perlu mulails
lebih dari sekali, tetapi pendekatan ini akan terus berfungsi.-maxdepth 1
padafind
).