รับวันที่แก้ไขล่าสุดของไฟล์ใน Linux


149

ฉันใหม่กับ Linux ฉันใช้บรรทัดคำสั่ง ฉันกำลังพยายามดูวันที่แก้ไขล่าสุดของไฟล์ ฉันจะทำสิ่งนั้นใน Linux จาก Command Line ได้อย่างไร


25
ls -lยังใช้งานได้ ...
Daniel Beck


1
@DanielBeck เป็นวันที่ของวันls -lที่แก้ไขหรือวันที่สร้าง?
Bruno Bieri

1
@BrunoBieri เป็นวันที่แก้ไข man lsดู ระบบไฟล์ Linux ทั่วไปไม่ได้ติดตามวันที่สร้าง - ดูคำตอบที่ยอมรับสำหรับประเภทของวันที่ที่ติดตาม
Daniel Beck

คำตอบ:


133

ตามที่กล่าวถึงโดย @ edvinas.me statจะบอกข้อมูลต่าง ๆ เกี่ยวกับไฟล์รวมถึงวันที่แก้ไขล่าสุด

ตอนแรกฉันสับสนกับModify and Changeเพียงเพื่อชี้แจงstatรายการผลลัพธ์:

  • Accessแสดงเวลาของการเข้าถึงข้อมูลล่าสุด (อ่านแล้ว)
  • Modifyแสดงเวลาของการแก้ไขข้อมูลล่าสุด
  • การเปลี่ยนแปลงจะแสดงเวลาที่สถานะไฟล์เปลี่ยนแปลงล่าสุด

ตัวอย่างเช่น:

~ $ 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

ใช้statคำสั่งสำหรับสิ่งนั้น:

$ stat file

27
หากคุณต้องการเพียงวันที่แก้ไขล่าสุด (ในรูปแบบที่มนุษย์อ่านได้) ให้ใช้stat -c '%y' file
Adam Taylor

35

date -rวิธีการที่มีความยืดหยุ่นมากขึ้นจะใช้อีก จากman date:

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

นี่เป็นข้อดีของการอนุญาตให้คุณระบุรูปแบบผลลัพธ์เช่น

$ 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
ใช่มีประโยชน์มากขอบคุณ นี่คือฟังก์ชั่นทุบตีที่จะเปลี่ยนชื่อไฟล์ที่จะนำหน้าด้วยเวลาที่แก้ไข: function mvfilestime () {ถ้า [x "$ {1}" = "x"]; echo "mvfilestime: ไม่มีอาร์กิวเมนต์ของไฟล์เป็น mv" else f = $ (วันที่ + "% Y-% m-% d-% H-% M" -r $ {1}) - $ {1} echo mv $ {1} $ {f} mv $ {1} $ {f} fi}
นักเดินทาง

สมบูรณ์แบบควรเป็นคำตอบที่ยอมรับ
AB

15

ls -l ควรทำงาน

ตัวอย่าง:

#> 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

หากไฟล์อยู่ในเว็บเซิร์ฟเวอร์อื่นฉันชอบhttpie( docs )

การติดตั้ง

pip install httpie --user

การใช้

-hคำสั่งให้เพียงส่วนหัว รูปแบบคือ

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

ตัวอย่าง:

$ 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

Dateเป็นสิ่งสำคัญเช่นนี้รายงานเวลาของเซิร์ฟเวอร์ที่ไม่เวลาท้องถิ่นของคุณ และไม่ใช่ทุกเซิร์ฟเวอร์ที่ส่งLast-Modified(เช่น superuser ดูเหมือนจะไม่ทำ)


2

1) รายการไดเรกทอรีไฟล์ที่มีวันที่ / เวลาที่แก้ไขล่าสุด

ในการแสดงรายการไฟล์และแสดงไฟล์ที่แก้ไขล่าสุดที่ด้านบนเราจะใช้-ltตัวเลือกที่มีlsคำสั่ง

$ 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-using-ls-command-linux/


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.