Câu trả lời:
Bạn có thể dùng:
ls -Rt
trong đó -Rcó nghĩa là đệ quy (bao gồm các thư mục con) và -tcó 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 -hcung 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 ...
-ilacung cấp cho bạn khá nhiều thông tin bạn cần. $ ls -ilaRt
ll -Rtlà 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.
llkhô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ư lsmộ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 -lsau:
-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 ' '
findnhư tác giả, những đối số đó -printflà 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 printftrang đó).
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 zshngườ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 olà viết tắt của thứ tự sắp xếp, lên và mlà 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]))