ฉันรู้ว่า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อาจช่วยใครบางคนได้