Làm cách nào để có được các tệp được tìm thấy bởi dòng lệnh 'find' được sắp xếp theo ngày sửa đổi trong OS X?


13

Sử dụng Mac OS X Terminal, làm cách nào để viết findlệnh ra lệnh kết quả theo ngày sửa đổi (lần đầu tiên gần đây nhất)?

Đã có những câu hỏi tương tự, nhưng chúng đề cập đến GNU findvà POSIX, nhưng tôi không biết liệu Mac OS X là GNU hay POSIX hay cái gì khác.

Câu trả lời:


16

OS X hoàn toàn tuân thủ POSIX .

Một cái gì đó như thế nên làm:

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

Một số lưu ý:

  • Các -ttùy chọn trong lssẽ sắp xếp theo mtime.
  • xargsđược sử dụng để truyền tên tệp làm đối số ls. Lưu ý rằng bạn phải sử dụng -print0trong find-0trong xargsnếu bạn có tệp có dấu cách trong tên của chúng. Ngoài ra, số lượng đối số tối đa bị giới hạn bởi ARG_MAXbiến . Để tìm hiểu có bao nhiêu, hãy nhập getconf ARG_MAX.
  • Bạn có thể cung cấp -rđể đảo ngược thứ tự sắp xếp (→ các tệp cũ nhất trước)
  • Các tùy chọn khác findls- như thường lệ - được nêu trong hướng dẫn sử dụng ( man findhoặc man ls).

ls -ltrđể đảo ngược thứ tự.
Daniel Beck

Tất nhiên, xe sẽ chỉ sắp xếp chúng trong các nhóm (ít hơn một chút) ARG_MAXký tự tên tệp theo cách đó.
JdeBP

Yup, cảm ơn vì đã bổ sung @JdeBP và Daniel. getconf ARG_MAXsẽ hiển thị số đó.
slhck

Bây giờ vấn đề của tôi là tôi đang sử dụng lệnh này trong một applescript và đang sử dụng kết quả để đọc nội dung của tập tin đó. Nhưng bây giờ kết quả chứa thông tin ngày, không chỉ tên tệp: do shell script "find / Users / akw / Library / Preferences / Byhost / -name 'com.apple.windowserver *' -print0 | xargs -0 ls -tl | head -1 "trả lại cái này ->" -rw ------- @ 1 akw staff 5512 ngày 19 tháng 6 07:51 /Users/akw/L Library / Peferences / Biost//com.apple.windowserver.1FC3A841-2C0C- 5F48-B746-1DEE064F6D12.plist "
zadam

@zadam thì dùng ls -tthay ls -tl. Việc -lcung cấp cho bạn một danh sách dài bao gồm cả ngày. Tôi không biết chính xác những gì bạn đang cố gắng làm, vì vậy xin lỗi vì điều đó - tôi cho rằng bạn cũng muốn thấy điều đó mtime.
slhck
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.