Đừng sử dụng ls
, đây là một công việc cho stat
:
stat -c '%y' filename
-c
cho phép chúng tôi nhận được đầu ra cụ thể, ở đây %y
sẽ cho chúng tôi thời gian sửa đổi cuối cùng của tệp ở định dạng có thể đọc được. Để có được thời gian tính bằng giây kể từ khi sử dụng Epoch %Y
:
stat -c '%Y' filename
Nếu bạn cũng muốn tên tệp, sử dụng %n
:
stat -c '%y : %n' filename
stat -c '%Y : %n' filename
Đặt các chỉ định định dạng cho phù hợp với nhu cầu của bạn. Kiểm tra man stat
.
Thí dụ:
% stat -c '%y' foobar.txt
2016-07-26 12:15:16.897284828 +0600
% stat -c '%Y' foobar.txt
1469513716
% stat -c '%y : %n' foobar.txt
2016-07-26 12:15:16.897284828 +0600 : foobar.txt
% stat -c '%Y : %n' foobar.txt
1469513716 : foobar.txt
Nếu bạn muốn đầu ra như thế nào Tue Jul 26 15:20:59 BST 2016
, hãy sử dụng thời gian Epoch làm đầu vào date
:
% date -d "@$(stat -c '%Y' a.out)" '+%a %b %d %T %Z %Y'
Tue Jul 26 12:15:21 BDT 2016
% date -d "@$(stat -c '%Y' a.out)" '+%c'
Tue 26 Jul 2016 12:15:21 PM BDT
% date -d "@$(stat -c '%Y' a.out)"
Tue Jul 26 12:15:21 BDT 2016
Kiểm tra date
định dạng định dạng để đáp ứng nhu cầu của bạn. Thấy man date
quá.
ls
được triển khai không nhất quán trên các hệ thống, và vì vậy không bao giờ nên được sử dụng cho bất kỳ loại tự động hóa nào. Thay vào đó, sử dụng các lệnh nhưstat
vàfind
khi viết script.