อย่าใช้ls
นี่เป็นงานสำหรับstat
:
stat -c '%y' filename
-c
ให้เราได้รับผลลัพธ์ที่เฉพาะเจาะจงที่นี่%y
จะทำให้เราได้รับเวลาที่แก้ไขล่าสุดของไฟล์ในรูปแบบที่มนุษย์อ่านได้ ในการรับเวลาเป็นวินาทีตั้งแต่ Epoch ใช้%Y
:
stat -c '%Y' filename
หากคุณต้องการชื่อไฟล์ด้วยให้ใช้%n
:
stat -c '%y : %n' filename
stat -c '%Y : %n' filename
ตั้งค่าตัวระบุรูปแบบให้เหมาะกับความต้องการของคุณ man stat
ตรวจสอบ
ตัวอย่าง:
% 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
หากคุณต้องการผลลัพธ์เช่นTue Jul 26 15:20:59 BST 2016
ใช้เวลา Epoch เป็นอินพุตเพื่อ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
ตรวจสอบตัวdate
ระบุรูปแบบเพื่อตอบสนองความต้องการของคุณ ดูman date
เช่นกัน
ls
มีการใช้งานข้ามระบบอย่างไม่สอดคล้องกันดังนั้นจึงไม่ควรใช้กับระบบอัตโนมัติใด ๆ ให้ใช้คำสั่งเช่นstat
และfind
เมื่อเขียนสคริปต์แทน