liệt kê dấu thời gian của các tập tin trong lệnh find find


26

Trong bash, nếu tôi sử dụng $ find ./ -name "*.sqlite", nó sẽ liệt kê tất cả các tệp sqlite trong thư mục hiện tại. Tôi cũng muốn xem thời gian sửa đổi của các tập tin, bất cứ ai có thể giúp tôi một số?

Câu trả lời:


34

Bạn có thể thêm vào findbiểu thức sau:

-printf '%Tc %p\n'

để xem một cái gì đó như

Sun Aug 14 06:29:38 2011 ./.nx/config/host.nxs

hoặc -printf '%TD %TT %p\n'cho

08/14/11 06:29:38.2184481010 ./.nx/config/host.nxs

hoặc -printf '%T+ %p\n'nếu bạn có GNU find, để xem

2011-08-14+06:29:38.2184481010 ./.nx/config/host.nxs

Cái cuối cùng này, nếu có, cũng hữu ích cho mục đích sắp xếp thời gian.

Xem trang hướng dẫn find, nơi nó nói về printf.


-printfkhông hoạt động trong OS-X. Có một lệnh tương đương với lệnh này sẽ hoạt động cho OS-X không?
Đi lang thang

@WanderingMind: trong OS-X, tôi khuyên bạn nên cài đặt MacPorts cung cấp nhiều ứng dụng UNIX, đặc biệt là các công cụ GNU, như GNU find.
enzotib

22

Một cách nhanh chóng để có thêm thông tin chi tiết về các tập tin được tìm thấy findlà sử dụng -lstùy chọn đầu ra.

find ./ -name "*.sqlite" -ls

Để có kết quả chính xác hơn , câu trả lời của enzotib là tại chỗ.


Tôi đã đưa ra một upvote, nhưng điều này không hiển thị đúng ngày, vì vậy rất khó để tìm "mới nhất" chẳng hạn.
lpapp 3/03/2015

Đây là nơi duy nhất tôi biết về tùy chọn -ls mà tôi đang rất cần
Atul

-1

Sử dụng lệnh dưới đây để có được danh sách các tập tin có dấu thời gian.

$ find . -type f | xargs ls -l --time-style="+%d-%m-%Y" 

-3

Điều này làm việc cho tôi:

$ find ./ -name "*.sqlite" -ls

4
Đây dường như là một bản sao hoàn chỉnh của câu trả lời của @ Caleb.
Chris Xuống
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.