ฉันจะเรียงลำดับผลลัพธ์ของ 'ls' ตามวันที่แก้ไขล่าสุดได้อย่างไร


1379

ฉันจะเรียงลำดับผลลัพธ์ของlsตามวันที่แก้ไขล่าสุดได้อย่างไร


1
ที่เกี่ยวข้อง (ไม่จำเป็นต้องซ้ำกัน): Unix / Linux ค้นหาและเรียงลำดับตามวันที่ปรับเปลี่ยน
Peter Mortensen

คำตอบ:


1638
ls -t

หรือ (สำหรับย้อนกลับล่าสุดที่ด้านล่าง):

ls -tr

lsหน้าคนอธิบายนี้ในรายละเอียดมากขึ้นและแสดงตัวเลือกอื่น ๆ


312
ls -haltสำหรับhuman readable, show hidden, ,print details sort by date
Evgeni Sergeev

6
ในกรณีที่มีใครสงสัยทั้ง-tและ-rอาร์กิวเมนต์ที่ระบุไว้ในส่วนเกี่ยวกับlsในมาตรฐาน POSIXดังนั้นควรเข้ากันได้กับ Unices
Mark Amery

5
ls -lltสำหรับการแสดงเวลาประทับวันที่พร้อมกับการเรียงลำดับ
Harshul Pandav

4
ใช่มันเป็นไปได้
Ashraf.Shk786

6
@EvgeniSergeev ไม่ต้องจดจำls -haltผิดพลาดง่าย ๆ อาจทำให้เซิร์ฟเวอร์ของคุณพังได้! linux.die.net/man/8/halt
Isaac

148

ls -ltrลองนี้: มันจะให้คุณล่าสุดถึงจุดสิ้นสุดของรายการ


ฉันใช้สิ่งนี้เพื่อรับรายการไฟล์ในที่เก็บ Git ของฉันตามวันที่แก้ไขล่าสุด ls -alt $(git ls-files -m)ขอบคุณ!
NobleUplift

45

สำหรับคำตอบที่สมบูรณ์นี่คือสิ่งที่ฉันใช้: ls -lrth

ใส่ไว้ในสคริปต์เริ่มต้นของคุณ/etc/bashrcและกำหนดนามแฝงเช่นนี้: alias l='ls -lrth'รีสตาร์ทเครื่องของคุณและคุณควรจะสามารถพิมพ์lและดูรายการไฟล์ที่มีความยาว


14
นอกจากนี้คุณยังสามารถโทรsource /etc/bashrcถ้าคุณต้องการที่จะเพิ่มไปยังเพลงของคุณในขณะที่ทำงาน
cwallenpoole

1
นอกจากนี้คุณยังสามารถเพิ่มไว้ใน~/.bash_aliasesสำหรับผู้ใช้ของคุณ (หนึ่งสามารถสร้างไฟล์หากมันไม่ได้อยู่แล้ว
Dinei

29

ฉันใช้บางครั้งสิ่งนี้:

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -tr

หรือ

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -ltr

เพื่อดูซ้ำว่าไฟล์ใดถูกแก้ไขใน 5 นาทีที่ผ่านมา

... หรือตอนนี้ด้วยGNUรุ่นล่าสุดค้นหา :

find . -type f -mmin -5 -exec ls -ltr {} +

... และแม้กระทั่งไม่ จำกัด เฉพาะไฟล์ :

find . -mmin -5 -exec ls -ltrd {} +

(โปรดทราบว่า-dสวิตช์เป็นlsไม่แสดงเนื้อหาของไดเรกทอรี)

วิธีที่แข็งแกร่งกว่านี้ไหม

ดูที่anser ของฉันเพื่อค้นหาและจัดเรียงตามวันที่แก้ไข


หมายความว่าคุณแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีย่อย ls ไม่มีสวิตช์ในการทำเช่นนั้นหรือไม่
jiggunjer

@ jiggunjer ls -Rltrจะจัดเรียงตาม dir จากนั้นตามวันที่find -type f -mmin -5 -exec ls -ltr {} +จะพิมพ์ไฟล์ที่แก้ไขใน 5 นาทีที่ผ่านมาเรียงลำดับตามวันที่โดยไม่คำนึงถึงแผนผังไดเรกทอรี!
F. Hauri

โปรดทราบว่าสิ่งนี้จะไม่ทำงานหากรายชื่อไฟล์ยาวเกินกว่าที่จะส่งผ่านได้ในฐานะหนึ่งเชลล์ที่เรียกใช้ls( unix.stackexchange.com/a/118200/27186 ) - จากนั้นคุณจะเห็นไฟล์เรียงลำดับหนึ่งไฟล์และอีกไฟล์หนึ่ง เรียงลำดับมัดไฟล์ ฯลฯ แต่รายการทั้งหมดจะไม่ถูกจัดเรียง ดูsuperuser.com/questions/294161/…สำหรับการเรียงลำดับรายการที่ยาวขึ้นด้วยการค้นหา
unhammer

@unhammer คุณพูดถูกเพื่อให้ทำงานได้อย่างปลอดภัยโปรดดูanser ล่าสุดของฉันไปที่ Unix / Linux ค้นหาและจัดเรียงตามวันที่แก้ไข
F. Hauri


15

ช่วยในการจำ

สำหรับอย่าเพิกเฉยต่อรายการที่ขึ้นต้นด้วย.และเรียงลำดับตามวันที่ (ใหม่สุดก่อน):

ls -at

สำหรับอย่าเพิกเฉยต่อรายการที่ขึ้นต้นด้วย.และย้อนกลับเรียงตามวันที่ (เก่าที่สุดก่อน):

ls -art

สำหรับอย่าเพิกเฉยต่อรายการที่ขึ้นต้นด้วย.ใช้รูปแบบรายการแบบยาวและเรียงตามวันที่ (ใหม่สุดก่อน):

ls -alt

สำหรับขนาดการพิมพ์ที่มนุษย์อ่านได้อย่าเพิกเฉยกับรายการที่ขึ้นต้นด้วย.ใช้รูปแบบรายการแบบยาวและเรียงตามวันที่ (ใหม่สุดก่อน) (@EvgeniSergeev note):

ls -halt

แต่ระวังด้วยตัวสุดท้ายเพราะการพิมพ์ผิดง่าย ๆ อาจทำให้เซิร์ฟเวอร์ล่มได้ ... (@Isaac note)


14

ค้นหาไฟล์ทั้งหมดบนระบบไฟล์ที่ถูกแก้ไขสูงสุด 3 * 24 ชั่วโมง (3 วัน) ที่ผ่านมาจนถึงตอนนี้:

find / -ctime 3

10

ในการแสดง 10 อันดับล่าสุดเรียงตามวันที่ฉันใช้สิ่งนี้:

ls -t ~/Downloads | head -10

หรือเพื่อแสดงที่เก่าแก่ที่สุด

ls -tr ~/Downloads | tail -10

มัน giv ls -t head -2และls -tr | tail -2ให้ผลเหมือนกันตัวเลือก (-t / -tr) ควรได้รับการแก้ไขและแก้ไขหาง / หัวหรือบทกวีรองการปรับเปลี่ยนทั้งสองเป็นเหมือน modyfing ไม่มีอะไร
DDS

7

การใช้คำสั่ง Unix ขั้นพื้นฐานเท่านั้น:

ls -nl | sort -k 8,8n -k 6,6M

สิ่งนี้ใช้ได้กับ Linux; คอลัมน์ 8 คือ "n" (ตัวเลข), คอลัมน์ 6 คือ "M", เดือน

ฉันใหม่ที่sortดังนั้นคำตอบนี้อาจจะดีขึ้น ไม่ต้องพูดถึงมันต้องการตัวเลือกเพิ่มเติมlsและsortใช้เวลาที่แน่นอน แต่ทุกคนไม่จำเป็นต้องใช้สิ่งนี้


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