Câu trả lời:
Bạn có thể dùng:
ls -Rt
trong đó -R
có nghĩa là đệ quy (bao gồm các thư mục con) và -t
có nghĩa là "sắp xếp theo ngày sửa đổi cuối cùng".
Để xem danh sách các tệp được sắp xếp theo ngày sửa đổi, hãy sử dụng:
ls -l -Rt
Một bí danh cũng có thể được tạo để đạt được điều này:
alias lt='ls -lht'
lt
Nơi -h
cung cấp đầu ra dễ đọc hơn.
ls -lrt[RhA]
. các -r
đảo ngược thứ tự sắp xếp, để lại những thứ vừa thay đổi nội dung ở dưới cùng của danh sách ...
-ila
cung cấp cho bạn khá nhiều thông tin bạn cần. $ ls -ilaRt
ll -Rt
là giải pháp hoàn hảo cho tôi khi tôi cần xem tệp theo ngày được sửa đổi gần đây nhất. Điều này có thể hữu ích cho những người khác.
ll
không tồn tại và không phải là lệnh. Nó chủ yếu là một bí danh trong bash shell, nhưng không được định nghĩa trong hầu hết / một số /? các bản phân phối linux. Một số định nghĩa nó là alias ll='ls -l'
trong /etc/bash.bashrc hoặc /etc/.bashrc. Vì vậy, nó có thể không hoạt động và nó có thể không tồn tại trên hệ thống OPs. Sử dụng ls -l -Rt
ít nhất, cũng như ls
một lệnh tiêu chuẩn được xác định bởi posix. Hoặc chỉ rõ ý bạn alias ll='ls -l'; ll -Rt
.
Nếu bạn muốn một danh sách tổng thể, trong đó tất cả các tệp được sắp xếp cùng nhau theo ngày sửa đổi, hiển thị thư mục chứa chúng, nhưng không được nhóm theo thư mục , bạn có thể sử dụng điều này:
find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
Kết quả trông giống như ls -l
sau:
-rw-r - r-- 1 root root 3892 08/11/2009 11:03:36 /usr/share/man/man1/xmllint.1.gz -rw-r - r-- 1 root root 22946 13/08/2009 11:59:20 /usr/share/man/man1/curl.1.gz -rw-r - r-- 1 root root 728 17/08/2009 12:06:33 /usr/share/man/man1/thunderbird.1.gz -rw-r - r-- 1 root root 873 18/08/2009 10:52:47 /usr/share/man/man1/libgnutls-config.1.gz -rw-r - r-- 1 root root 2552 19/08/2009 02:00:34 /usr/share/man/man3/Purple.3pm.gz -rw-r - r-- 1 root root 9546 19/08/2009 02:02:00 /usr/share/man/man1/pidgin.1.gz -rw-r - r-- 1 root root 2201 19/08/2009 02:02:46 /usr/share/man/man3/Pidgin.3pm.gz -rw-r - r-- 1 root root 926 19/08/2009 02:03:05 /usr/share/man/man1/purple-remote.1.gz -rw-r - r-- 1 root root 18052 19/08/2009 04:11:47 /usr/share/man/man1/mono.1.gz -rw-r - r-- 1 root root 1845 19/08/2009 04:11:47 /usr/share/man/man5/mono-config.5.gz
Đối với những người bạn sử dụng Mac OS X, tùy chọn -printf không khả dụng trên BSD find (bạn sẽ gặp lỗi này find: -printf: unknown primary or operator
:). May mắn thay, bạn có thể Install GNU tìm thấy thông qua Homebrew (cũng nên có tùy chọn để Fink và Macports ):
brew install findutils
Sau khi cài đặt nó, GNU find sẽ có sẵn cho bạn gfind
. Vì vậy, tất cả những gì bạn cần làm là thay đổi dòng trên thành:
gfind . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
find
như tác giả, những đối số đó -printf
là chỉ thị định dạng có thể được tìm thấy trong man find
(tìm kiếm ví dụ thứ năm của printf
trang đó).
find . -type f -print0 | xargs -0 stat -f "%m %Sp %l %-8Su %-8Sg %8z %Sm %N" | sort | cut -f 2- -d' '
sẽ cung cấp cho bạn khoảng đầu ra tương tự trên hệ điều hành MacOS chỉ sử dụng được xây dựng trong các tiện ích
sort -r
để đảo ngược việc sắp xếp và đặt các tệp được sửa đổi gần đây nhất ở trên cùng.
MAC OSX 2019
Nếu bạn không quan tâm đến thời gian nó được tạo nhưng bạn muốn danh sách của mình được sắp xếp thì hãy sử dụng lệnh này
==> ls -t
Nếu bạn muốn đặt hàng và xem ngày tháng và thông tin người dùng, hãy sử dụng lệnh này
===> ls -lt
Đối với zsh
người dùng, bạn cũng có thể sử dụng các vòng loại toàn cầu (cũng được ghi lại trên man zshexpn
):
echo *(om)
Where o
là viết tắt của thứ tự sắp xếp, lên và m
là viết tắt của thời gian sửa đổi cuối cùng .
Điều này có thể hữu ích khi được sử dụng trong vòng lặp for hoặc một lệnh khác:
for file in *(^om); do
[ -e "$file" ] || continue
# do something with file orderer from least recently modified to last modified
done
Hoặc được xâu chuỗi với một vòng loại toàn cầu khác:
last_modified_file=(*(om[1]))