แสดงปีขณะที่แสดงรายการไฟล์ในไดเรกทอรีปัจจุบัน


58

ฉันกำลังทำงานบนเซิร์ฟเวอร์ Red Hat คำสั่งls -lหรือให้ฉันวันที่และเวลาในรูปแบบll+"%b %-d %H:%M"

ฉันต้องการแสดงรายการไฟล์ในลักษณะที่ปีที่ไฟล์แต่ละไฟล์ถูกสร้างขึ้นจะปรากฏขึ้นภายในวันที่

เป็นไปได้อย่างไร?


ไม่ฉันไม่คิดว่าฉันลอง "ls -lT" ไม่พบเลย
WAEL

1
ls -lTสำหรับmac osx
Kris Roofe

1
โดยทั่วไปแล้ว Unix จะไม่ติดตามเวลาในการสร้างไฟล์และlsโดยทั่วไปแม้ว่าจะเป็นเช่นนั้นก็ตามโดยทั่วไปจะไม่มีวิธีแสดงผล ดังนั้นโดยทั่วไปนี่เป็นไปไม่ได้
G-Man

คำตอบ:


86

คุณสามารถใช้man lsและที่นี่คุณสามารถค้นหา--time-styleพารามิเตอร์ หรือคุณสามารถใช้:

ls --full-time.


1
@bob: เห็นด้วยกับ Turco โดยสิ้นเชิง หากคุณไม่ทำเช่นนั้นคงไม่มีใครสนใจที่จะตอบคำถามของคุณ
The Dark Knight

5
ตัวอย่างสำหรับสไตล์เวลาls -l --time-style=+%F
sobi3ch

1
สำหรับผู้ที่llตั้งค่าไว้แล้วls -laหรือเป็นอย่างอื่นll --full-timeก็ใช้งานได้
Meetai.com

8

ls -lจะแสดงวันเดือนปีที่แล้ว - เนื่องจากตามหน้า man ของ BSD: หากเวลาการแก้ไขของไฟล์มากกว่า 6 เดือนในอดีตหรืออนาคตปีการแก้ไขครั้งล่าสุดจะปรากฏขึ้นแทนที่เขตข้อมูลชั่วโมงและนาที .

ดังนั้นเพื่อให้แน่ใจว่าจะแสดงปีนั้นให้ใช้:

ls --time-style=long-iso (GNU / Linux)

ls -lT จะแสดงข้อมูลแสดงเวลาที่สมบูรณ์ใน BSD (MacOS)


6

เมื่อคุณขอให้ปีls -lacเป็นคนที่ง่ายต่อการจำถ้าเช่นฉันคุณใช้ls -laตลอดเวลา เวลาที่cให้คุณซึ่งจะแสดงปีถ้าไม่ใช่ปีปัจจุบันหรือชั่วโมงและนาทีถ้าเป็น


ฉันชอบสิ่งนี้. มีเสียงรบกวนน้อยลงในเอาต์พุตและมีเพียงตัวอักษรเดียวที่ต้องจดจำในอนาคต
Eric

1
นี้ดูเหมือนว่าจะเปลี่ยนพฤติกรรมของlsการเปลี่ยนวันแทนที่จะเริ่มต้นวันที่แก้ไข
Mateen Ulhaq

2
ls -lแสดงวันที่และเวลาสำหรับวันที่ในช่วงหกเดือนที่ผ่านมาและวันที่และปีสำหรับวันอื่น ๆ ctime สามารถอยู่ในช่วงหกเดือนที่ผ่านมาได้มากเท่าที่ mtime (วันที่แก้ไข) สามารถดังนั้นจึงls -lacสามารถแสดงเวลา (แทนปี) เพียงเท่าที่ls -laจะทำได้ นอกจากนี้ Mateen Ulhaq ยังชี้ให้เห็นว่าls -lacไม่แสดงวันที่ls -laเดียวกัน คำตอบนี้ผิด
G-Man

2
“ คำตอบ” นี้ในโลกได้รับเจ็ดคะแนนอย่างไร
G-Man

5

นอกจากคำตอบของ Jan Marek .... ฉันสังเกตเห็นว่าคุณสามารถหนีไปได้ด้วย:

ls - เต็มหรือ ls --fu

ซึ่งจะทำสิ่งเดียวls --full-timeกับที่เขาอธิบาย ขอบคุณStéphane Chazelas ตอนนี้ฉันพิมพ์ls --fuทุกที่ :)


1
ls --fuหรือ ตัวเลือกแบบยาวของ GNU สามารถใช้ตัวย่อได้ตราบใดที่ไม่มีความกำกวม ( --fจะไม่ทำงานเพราะยังมี - ไฟล์ประเภทและ - รูปแบบ) โปรดทราบว่าเวอร์ชันในอนาคตอาจนำเสนอ--full-permsดังนั้นจึงเป็นอันตรายที่ต้องพึ่งพา
Stéphane Chazelas

1
ดีใจที่ได้ทราบ! มันคือทั้งหมดที่เกี่ยวกับการพิมพ์น้อยลง :)
G_Style

2

หากคุณกำลังใช้busybox(distros ที่ฝังอยู่เช่น OpenWRT, LEDE) สวิตช์ที่คุณกำลังมองหานั้นเป็น-eรุ่นที่สูงถึง 1.26.2 และ--full-timeสำหรับ 1.27.0 ขึ้นไป (ดูการกระทำที่เปลี่ยนไป )


1
-eยังทำงานร่วมกับระบบปฏิบัติการ Solaris lsและ AST เปิดดังนั้นก็จริงใกล้ชิดกับมาตรฐานกว่า --full-timeGNU ความอัปยศที่ busybox นำออกเป็นเวอร์ชันที่ใหม่กว่า
Stéphane Chazelas

@ StéphaneChazelasไม่รู้เช่นนั้น! ขอบคุณสำหรับการแก้ไข
รหัส Bling

-1

อาจชื่นชอบ:

$ ls -altT / path / to / some / dir


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