Làm cách nào tôi có thể sắp xếp đầu ra của 'ls' vào ngày sửa đổi cuối cùng?


Câu trả lời:


1638
ls -t

hoặc (để đảo ngược, gần đây nhất ở dưới cùng):

ls -tr

Các lstrang người đàn ông mô tả này chi tiết hơn, và liệt kê các lựa chọn khác.


312
ls -haltlà cho human readable, show hidden, print details, sort by date.
Evgeni Sergeev

6
Trong trường hợp bất kỳ ai thắc mắc, cả đối số -t-rđối số đều được chỉ định trong phần về lstrong tiêu chuẩn POSIX , do đó phải tương thích trên các Thông báo.
Đánh dấu Amery

5
ls -lltđể hiển thị dấu thời gian cùng với sắp xếp
Harshul Pandav

4
Vâng, điều đó là có thể
Ashraf.Shk786

6
@EvgeniSergeev ĐỪNG NHỚ ls -haltmột kiểu gõ đơn giản có thể khiến máy chủ của bạn gặp sự cố! linux.die.net/man/8/halt
Isaac

148

Hãy thử điều này : ls -ltr. Nó sẽ cung cấp cho bạn gần đây đến cuối danh sách


Tôi đã sử dụng điều này để lấy danh sách các tệp trong kho Git của mình trước ngày chỉnh sửa cuối cùng của chúng. ls -alt $(git ls-files -m)Cảm ơn!
NobleUplift

45

Đối với một câu trả lời đầy đủ ở đây là những gì tôi sử dụng: ls -lrth

Đặt cái này trong tập lệnh khởi động của bạn /etc/bashrcvà gán một bí danh như thế này: alias l='ls -lrth'Khởi động lại thiết bị đầu cuối của bạn và bạn sẽ có thể nhập lvà xem một danh sách dài các tệp.


14
Bạn cũng có thể gọi source /etc/bashrcnếu bạn muốn thêm nó vào tiết mục của mình trong khi chạy.
cwallenpoole

1
Bạn cũng có thể thêm nó ~/.bash_aliaseschỉ cho người dùng của mình (người ta có thể tạo tệp nếu nó chưa tồn tại
Dinei

29

Tôi sử dụng đôi khi này:

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -tr

hoặc là

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -ltr

để xem đệ quy về những tập tin đã được sửa đổi trong 5 phút qua.

... hoặc bây giờ, với phiên bản gần đây của GNU find :

find . -type f -mmin -5 -exec ls -ltr {} +

... và thậm chí không giới hạn các tệp :

find . -mmin -5 -exec ls -ltrd {} +

(lưu ý -dchuyển sang lskhông hiển thị nội dung của thư mục)

Cách mạnh mẽ hơn?

Có một cái nhìn vào anser của tôi để tìm và sắp xếp theo ngày sửa đổi


Theo đệ quy, bạn có nghĩa là nó liệt kê tất cả các tệp trong thư mục con, không phải tôi đã có một công tắc để làm điều đó sao?
jiggunjer

@jiggunjer ls -Rltrsẽ sắp xếp theo thư mục, sau đó theo ngày, find -type f -mmin -5 -exec ls -ltr {} +sẽ chỉ in các tệp được sửa đổi trong 5 phút cuối, được sắp xếp theo ngày, bất kể cây thư mục!
F. Hauri

Lưu ý rằng điều này sẽ không hoạt động nếu danh sách các tệp quá dài để được chuyển dưới dạng một lệnh gọi shell tới ls( unix.stackexchange.com/a/118200/27186 ) - sau đó bạn sẽ thấy một bó các tệp được sắp xếp, sau đó là một tệp khác sắp xếp các tập tin, vv nhưng toàn bộ danh sách sẽ không được sắp xếp. Xem superuser.com/questions/294161/ đá để sắp xếp danh sách dài hơn với tìm kiếm.
unhammer

@unhammer Bạn nói đúng, để nó hoạt động an toàn, hãy xem phần tìm kiếm gần đây của tôi để tìm Unix / Linux và sắp xếp theo ngày được sửa đổi
F. Hauri

20

Thêm vào:

alias lt='ls -Alhtr'

trong $homedir/.bashrc


15

Ghi nhớ

Để không bỏ qua các mục bắt đầu bằng .sắp xếp theo ngày (mới nhất trước):

ls -at

Để không bỏ qua các mục bắt đầu bằng .sắp xếp ngược theo ngày (cũ nhất trước):

ls -art

Để không bỏ qua các mục bắt đầu bằng ., hãy sử dụng định dạng danh sách dài và sắp xếp theo ngày (mới nhất trước):

ls -alt

Để in kích thước có thể đọc được của con người, đừng bỏ qua các mục bắt đầu bằng ., sử dụng định dạng danh sách dài và sắp xếp theo ngày (mới nhất trước) (ghi chú @EvgeniSergeev):

ls -halt

nhưng hãy cẩn thận với cái cuối cùng , bởi vì một kiểu gõ đơn giản có thể gây ra sự cố máy chủ ... (@Isaac note)


14

Tìm tất cả các tệp trên hệ thống tệp đã được sửa đổi tối đa 3 * 24 giờ (3 ngày) cho đến nay:

find / -ctime 3

10

Để hiển thị 10 sắp xếp gần đây nhất theo ngày, tôi sử dụng một cái gì đó như thế này:

ls -t ~/Downloads | head -10

hoặc để hiển thị lâu đời nhất

ls -tr ~/Downloads | tail -10

Nó giv ls -t head -2ls -tr | tail -2cho kết quả tương tự, tùy chọn (-t / -tr) nên được giữ cố định và sửa đổi đuôi / đầu hoặc ngược lại, sửa đổi cả hai giống như sửa đổi không có gì
DDS

7

Chỉ sử dụng các lệnh Unix rất cơ bản:

ls -nl | sort -k 8,8n -k 6,6M

Điều này đã làm việc trên Linux; cột 8 là "n" (số), cột 6 là "M", tháng.

Tôi mới tham gia sort, vì vậy câu trả lời này có thể được cải thiện. Chưa kể, nó cần các tùy chọn bổ sung để lssortsử dụng dấu thời gian chính xác, nhưng không phải ai cũng sẽ cần điều này.


5
Tôi nghi ngờ câu trả lời của bạn đã không nhận được bất kỳ lượt bình chọn nào vì nó phân tích cú pháp đầu ra của ls - xem đối số chính tắc chống lại làm như vậycâu hỏi này về việc không phân tích cú pháp ls
Eponymous 15/12/14
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.