หากคุณออกls -allคำสั่งบางไฟล์หรือไดเรกทอรีมีปีและบางส่วนมีเวลาหรือไม่ ทำไมบางคนถึงแสดงปีในขณะที่คนอื่น ๆ แสดงเวลา? ตัวแทนเวลาเป็นเวลาที่สร้างไฟล์หรือไม่
หากคุณออกls -allคำสั่งบางไฟล์หรือไดเรกทอรีมีปีและบางส่วนมีเวลาหรือไม่ ทำไมบางคนถึงแสดงปีในขณะที่คนอื่น ๆ แสดงเวลา? ตัวแทนเวลาเป็นเวลาที่สร้างไฟล์หรือไม่
คำตอบ:
ตามค่าเริ่มต้นการประทับเวลาของไฟล์จะแสดงรายการในรูปแบบย่อโดยใช้วันที่เช่น 'Mar 30 2002' สำหรับการประทับเวลาที่ไม่ได้มาล่าสุดและวันที่ไม่มีปีและเวลาเช่น 'Mar 30 23:45' สำหรับการประทับเวลาล่าสุด รูปแบบนี้สามารถเปลี่ยนแปลงได้ขึ้นอยู่กับสถานที่ปัจจุบันตามรายละเอียดด้านล่าง
การประทับเวลาจะถือเป็นล่าสุดหากน้อยกว่าหกเดือนและไม่ได้ลงวันที่ในอนาคต หากการประทับเวลาวันนี้ไม่ได้อยู่ในรูปแบบล่าสุดการประทับเวลานั้นจะเกิดขึ้นในอนาคตซึ่งหมายความว่าคุณอาจมีปัญหาการเอียงนาฬิกาซึ่งอาจทำให้โปรแกรมแตกเช่นทำให้ต้องใช้การประทับเวลาของไฟล์
ที่มา: http://www.gnu.org/software/coreutils/manual/coreutils.html#Formatting-file-timestamps
เพื่อแสดง:
$ for i in {1..7}; do touch -d "$i months ago" file$i; done
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Sep 21 02:38 file1
-rw-r--r-- 1 terdon terdon 0 Aug 21 02:38 file2
-rw-r--r-- 1 terdon terdon 0 Jul 21 02:38 file3
-rw-r--r-- 1 terdon terdon 0 Jun 21 02:38 file4
-rw-r--r-- 1 terdon terdon 0 May 21 02:38 file5
-rw-r--r-- 1 terdon terdon 0 Apr 21  2015 file6
-rw-r--r-- 1 terdon terdon 0 Mar 21  2015 file7
              เวลาที่แสดงคือเวลาแก้ไข โปรดทราบว่าls -allเป็นสิ่งเดียวที่แตกต่างจากls -l -a ls --allไม่มีเหตุผลที่จะใช้สองครั้งlในตัวอย่างของคุณ ls -al --full-timeหากคุณต้องการที่จะเห็นการปรับเปลี่ยนเวลาสำหรับแต่ละไฟล์ที่คุณสามารถใช้
lsสำหรับการใช้งานปกติ--time-style=long-isoอาจมีประโยชน์มากกว่า --full-timeแสดงวินาทีรวมถึงเก้า ciphers (!) หลังจากจุดทศนิยมที่ไม่จำเป็น
                    --full-timeหมายถึงดังนั้นคุณก็สามารถใช้-l ls -a --full-time
                    หากวันที่ / เวลาที่พยายามแสดงอยู่ในช่วงหกเดือนที่ผ่านมา
 lsแสดงวันที่และเวลา หากนานกว่าหกเดือน - หรือในอนาคต - lsแสดงวันที่และปี
ตามที่ระบุไว้ในคำตอบอื่น ๆ
ls -llเทียบเท่ากับls -lและls -allเทียบเท่ากับls -alซึ่งเทียบเท่ากับls -a -l, และls -l -als -laด้วย-lตัวเลือกให้lsแสดงวันที่ / เวลาที่แก้ไขของไฟล์ (รวมถึงไดเรกทอรีเนื่องจาก "ทุกอย่างเป็นไฟล์") ยกเว้น
-c มีการระบุด้วยซึ่งในกรณีนี้จะแสดงเวลาเปลี่ยนหรือ-u มีการระบุไว้ด้วยซึ่งในกรณีนี้จะแสดงเวลาเข้าถึงดูls (1)สำหรับข้อมูลเพิ่มเติม
ผลลัพธ์นี้ถูกปรับสำหรับเนื้อหาข้อมูลสูงสุด: เมื่อเวลา "ใกล้พอ" กับเวลาปัจจุบัน (ไม่แน่ใจทั้งหมด แต่ฉันคาดเดาภายในหกเดือน) ปีจะถูกลบออกและเวลาของวันที่แสดงแทน มิฉะนั้นจะแสดงปี นี่เป็นค่าเริ่มต้นส่วนใหญ่เป็นเพราะคุณไม่สนใจเรื่องเวลาที่แน่นอนของสิ่งที่ถูกแก้ไขหากเวลานั้นเป็นปีที่ผ่านมา coreutils ของ GNUlsมี--time-styleตัวเลือกเพื่อควบคุมสิ่งนี้อย่างชัดเจน
คุณรู้อะไรไหม มันเพิ่งปรากฏเวลาชั่วโมงในวันที่ 20 ตุลาคมซึ่งเป็นวันนี้ซึ่งหมายความว่ามันจะแสดงครั้งสุดท้ายที่คุณแก้ไขไฟล์ แต่ในวันอื่น ๆ ที่ไม่ใช่วันนี้มันจะแสดงเฉพาะวันที่ไม่มีเวลา
ปรากฏว่าไม่ใช่สิ่งนี้ตามที่โธมัสตอบ ฉันแค่พยายามใช้วิธีการหักเงินไม่มั่นใจว่าจะมีข้อสรุปที่ถูกต้องหลังจากทั้งหมด
Aug  6 19:50 .config, Aug  6 19:48 VNCHOWTO.
                    
-allคุณกำลังใช้ โปรดสังเกต L สุดท้ายคือฟุ่มเฟือยเพราะallไม่ได้หมายถึงคำว่า "all" แต่สำหรับ-a(แสดงไฟล์ทั้งหมด) และ-l(รูปแบบรายการแบบยาว) ทั้งหมดเข้าด้วยกันls -alเหมือนกับสิ่งที่คุณใช้