Bagaimana cara mendapatkan file yang ditemukan oleh command-line 'find' yang dipesan berdasarkan tanggal modifikasi di OS X?

13

Menggunakan Terminal Mac OS X, bagaimana cara menulis findperintah yang memerintahkan hasil berdasarkan tanggal modifikasi (paling baru terlebih dahulu)?

Sudah ada pertanyaan serupa, tetapi mereka merujuk ke GNU finddan POSIX, tapi saya tidak tahu apakah Mac OS X adalah GNU atau POSIX atau sesuatu yang lain.

Zadam
sumber

Jawaban:

16

OS X sepenuhnya kompatibel dengan POSIX .

Sesuatu seperti itu harus dilakukan:

find . -type f -name "*.txt" -print0 | xargs -0 ls -tl

Beberapa catatan:

  • The -tpilihan di lsakan mengurutkan oleh mtime.
  • xargsdigunakan untuk meneruskan nama file sebagai argumen untuk ls. Perhatikan bahwa Anda harus menggunakan -print0di finddan -0di xargsjika Anda memiliki file dengan spasi di nama mereka. Juga, jumlah maksimum argumen dibatasi oleh ARG_MAXvariabel . Untuk mengetahui berapa jumlahnya, masukkan getconf ARG_MAX.
  • Anda dapat menyediakan -runtuk membalik urutan urut (→ file terlama dulu)
  • Yang lain finddan lsopsi - seperti biasa - diuraikan dalam manual ( man findatau man ls).
slhck
sumber
ls -ltruntuk membalik urutan.
Daniel Beck
Xe hanya akan membuat mereka diurutkan dalam grup (sedikit kurang dari) ARG_MAXkarakter nama file dengan cara itu, tentu saja.
JdeBP
Yup, terima kasih untuk penambahan @JdeBP dan Daniel. getconf ARG_MAXakan menunjukkan nomor itu.
slhck
ah masalah saya sekarang adalah bahwa saya menggunakan perintah ini dalam sebuah applescript, dan menggunakan hasilnya untuk membaca isi file itu. Tetapi sekarang hasilnya berisi informasi tanggal, bukan hanya nama file: do script skrip "find / Users / akw / Library / Preferences / ByHost / -name 'com.apple.windowserver *' -print0 | xargs -0 ls -tl | head -1 "mengembalikan ini ->" -rw ------- @ 1 staf akw 5512 19 Juni 19:52 / Pengguna / akw/Library/Preferences/ByHost//com.apple.windowserver.1FC3A841-2C0C- 5F48-B746-1DEE064F6D12.plist "
zadam
@zadam lalu gunakan ls -tsebagai ganti ls -tl. The -lmemberi Anda daftar panjang termasuk tanggal. Saya tidak tahu apa yang Anda coba lakukan dengan tepat, maaf untuk itu - saya berasumsi Anda juga ingin melihatnya mtime.
slhck