ฉันรู้ว่าls -t
จะแสดงรายการไฟล์ทั้งหมดตามเวลาที่แก้ไข แต่ฉันจะ จำกัด ผลลัพธ์เหล่านี้เฉพาะnไฟล์สุดท้ายได้อย่างไร
tharl
มันมาตลอดเพราะมันมีทุกอย่างที่ฉันต้องการ
ฉันรู้ว่าls -t
จะแสดงรายการไฟล์ทั้งหมดตามเวลาที่แก้ไข แต่ฉันจะ จำกัด ผลลัพธ์เหล่านี้เฉพาะnไฟล์สุดท้ายได้อย่างไร
tharl
มันมาตลอดเพราะมันมีทุกอย่างที่ฉันต้องการ
คำตอบ:
ลองใช้หัวหรือหาง หากคุณต้องการ 5 ไฟล์ที่แก้ไขล่าสุด:
ls -1t | head -5
-1 (นั่นคือหนึ่ง) กล่าวว่าหนึ่งไฟล์ต่อหนึ่งบรรทัดและส่วนหัวบอกว่ารับ 5 รายการแรก
หากคุณต้องการลอง 5 ครั้งสุดท้าย
ls -1t | tail -5
ls
ในหลายคอลัมน์ แต่เอาต์พุตของls
ถูกส่งไปยังคำสั่งต่อไปนี้พร้อมกับ 1 ไฟล์ / dir ในแต่ละครั้ง
ls -1t | head -n 6 | tail -n 5
คำตอบที่ยอมรับจะแสดงเฉพาะชื่อไฟล์ แต่หากต้องการรับไฟล์ 5 อันดับแรกคุณสามารถใช้:
ls -lht | head -6
ที่ไหน:
-l
ผลลัพธ์ในรูปแบบรายการ
-h
ทำให้เอาต์พุตที่มนุษย์อ่านได้ (เช่นขนาดไฟล์ปรากฏเป็น kb, mb เป็นต้น)
-t
จัดเรียงเอาต์พุตโดยวางไฟล์ที่แก้ไขล่าสุดก่อน
head -6
จะแสดงไฟล์ 5 ไฟล์เนื่องจากls
พิมพ์ขนาดบล็อกในบรรทัดแรกของเอาต์พุต
ฉันคิดว่านี่เป็นแนวทางที่สง่างามกว่าเล็กน้อยและอาจเป็นประโยชน์มากกว่า
ตัวอย่างผลลัพธ์:
total 26960312
-rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py
-rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf
-rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf
-rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf
-rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv
ใช้tail
คำสั่ง:
ls -t | tail -n 5
ls -tr
) หรือใช้head
มากกว่าtail
เพื่อให้ได้ 5 ใหม่ล่าสุด
โดยค่าเริ่มต้น ls -t
เรียงลำดับเอาต์พุตจากใหม่สุดไปหาเก่าที่สุดดังนั้นการรวมกันของคำสั่งที่จะใช้ขึ้นอยู่กับทิศทางที่คุณต้องการให้สั่งเอาต์พุต
สำหรับไฟล์ 5 ไฟล์ใหม่ล่าสุดที่เรียงลำดับจากใหม่สุดไปเก่าสุดให้ใช้head
เพื่อรับเอาต์พุต 5 บรรทัดแรก:
ls -t | head -n 5
สำหรับไฟล์ 5 ไฟล์ใหม่ล่าสุดที่เรียงลำดับจากเก่าที่สุดไปหาใหม่ที่สุดให้ใช้-r
สวิตช์เพื่อย้อนกลับls
ลำดับการจัดเรียงและใช้tail
เพื่อรับเอาต์พุต 5 บรรทัดสุดท้าย:
ls -tr | tail -n 5
ls -t
แสดงรายการไฟล์ตามเวลาสร้างไม่ใช่เวลาแก้ไขล่าสุด ใช้ls -ltc
หากคุณต้องการแสดงรายการไฟล์ตามเวลาที่แก้ไขล่าสุดจากครั้งสุดท้ายไปยังครั้งแรก (บนลงล่าง) ดังนั้นรายการ n สุดท้าย:ls -ltc | head ${n}
-t sort by modification time, newest first
ls -lrt
อาจช่วยใครบางคนได้