Nhận ngày sửa đổi cuối cùng của tệp trong Linux


149

Tôi mới dùng Linux. Tôi đang sử dụng dòng lệnh. Tôi đang cố gắng xem ngày sửa đổi cuối cùng của một tập tin. Làm thế nào để tôi làm điều đó trong Linux từ Dòng lệnh?


25
ls -lcũng hoạt động ...
Daniel Beck


1
@DanielBeck là ngày của ls -lngày sửa đổi hoặc ngày tạo?
Bruno Bieri

1
@BrunoBieri Đó là ngày sửa đổi. Xem man ls. Các hệ thống tệp Linux điển hình thậm chí không theo dõi ngày tạo - xem câu trả lời được chấp nhận cho các loại ngày được theo dõi.
Daniel Beck

Câu trả lời:


133

Như được đề cập bởi @ edvinas.me, statcho bạn biết thông tin khác nhau về tệp bao gồm ngày sửa đổi cuối cùng.

Lúc đầu, tôi đã nhầm lẫn với Sửa đổiThay đổi , chỉ để làm rõ, statdanh sách đầu ra:

  • Truy cập hiển thị thời gian truy cập dữ liệu cuối cùng (ví dụ đọc).
  • Sửa đổi hiển thị thời gian sửa đổi dữ liệu cuối cùng.
  • Thay đổi hiển thị thời gian trạng thái tập tin thay đổi lần cuối.

Ví dụ:

~ $ touch foo
~ $ stat foo
File: ‘foo’
Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 410397      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:06:11.343616258 +0200
Modify: 2015-09-21 12:06:11.343616258 +0200
Change: 2015-09-21 12:06:11.343616258 +0200
Birth: -

~ $ echo "Added bar to foo file" >> foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:09:31.302713093 +0200
Birth: -

~ $ chmod 444 foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0444/-r--r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:10:16.040310543 +0200
Birth: -

65

Sử dụng statlệnh cho điều đó:

$ stat file

27
Nếu bạn chỉ muốn ngày sửa đổi cuối cùng (ở dạng có thể đọc được), hãy sử dụngstat -c '%y' file
Adam Taylor

35

Một cách khác linh hoạt hơn là sử dụng date -r. Từ man date:

-r, --reference=FILE
       display the last modification time of FILE

Điều này có lợi thế là cho phép bạn chỉ định định dạng đầu ra, ví dụ:

$ date -r foo
Thu Aug 31 10:36:28 AEST 2017
$ date -r foo -R
Thu, 31 Aug 2017 10:36:28 +1000
$ date -r foo -u
Thu Aug 31 00:36:28 UTC 2017
$ date -r foo +%s
1504139788

3
Vâng, rất hữu ích, cảm ơn. Đây là một hàm bash sẽ đổi tên một tệp thành tiền tố theo thời gian đã sửa đổi: function mvfilestime () {if [x "$ {1}" = "x"]; sau đó lặp lại "mvfilestime: Thiếu đối số của tệp thành mv" khác f = $ (ngày + "% Y-% m-% d-% H-% M" -r $ {1}) - $ {1} echo mv $ {1} $ {f} mv $ {1} $ {f} fi}
Khách du lịch

hoàn hảo, nên là câu trả lời được chấp nhận
AB

15

ls -l nên làm việc

Thí dụ:

#> ls -l /home/TEST/
total 16

-rw-r--r--   1 rfmas1   nms          949 Nov 16 12:21 create_nd_lists.py

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 enb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nodes_ip.txt

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 rnc_list

2

Nếu tệp nằm trên một máy chủ web khác, tôi thích httpie( tài liệu ).

Cài đặt

pip install httpie --user

Sử dụng

Các -hlệnh đưa ra chỉ tiêu đề. Mô hình là

http -h [url] | grep 'Last-Modified\|Date'

Thí dụ:

$ http -h https://martin-thoma.com/author/martin-thoma/ | grep 'Last-Modified\|Date'
Date: Fri, 06 Jan 2017 10:06:43 GMT
Last-Modified: Fri, 06 Jan 2017 07:42:34 GMT

Điều Datenày rất quan trọng vì điều này báo cáo thời gian máy chủ, không phải giờ địa phương của bạn. Ngoài ra, không phải máy chủ nào cũng gửi Last-Modified(ví dụ như superuser dường như không làm điều đó).


2

1) Liệt kê thư mục Tệp với Ngày / Giờ Sửa đổi Lần cuối

Để liệt kê các tệp và hiển thị các tệp sửa đổi cuối cùng ở trên cùng, chúng tôi sẽ sử dụng -ltcác tùy chọn với lslệnh.

$ ls -lt /run
output
total 24
-rw-rw-r--.  1 root utmp 2304 Sep  8 14:58 utmp
-rw-r--r--.  1 root root    4 Sep  8 12:41 dhclient-eth0.pid
drwxr-xr-x.  4 root root  100 Sep  8 03:31 lock
drwxr-xr-x.  3 root root   60 Sep  7 23:11 user
drwxr-xr-x.  7 root root  160 Aug 26 14:59 udev
drwxr-xr-x.  2 root root   60 Aug 21 13:18 tuned

https://linoxide.com/linux-how-to/how-sort-files-date-USE-ls-command-linux/


1

Để đặc biệt chỉ cần có được ngày stat -c %y file | cut -d' ' -f1

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.