หากคุณออก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 -a
ls -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
เหมือนกับสิ่งที่คุณใช้