เมื่อใช้ Mac OS X Terminal ฉันจะเขียนfind
คำสั่งที่สั่งซื้อผลลัพธ์ตามวันที่แก้ไขได้อย่างไร (ล่าสุดมาก่อน)
มีคำถามที่คล้ายกันอยู่แล้ว แต่พวกเขาอ้างถึง GNU find
และ POSIX แต่ฉันไม่ทราบว่า Mac OS X เป็น GNU หรือ POSIX หรืออย่างอื่น
เมื่อใช้ Mac OS X Terminal ฉันจะเขียนfind
คำสั่งที่สั่งซื้อผลลัพธ์ตามวันที่แก้ไขได้อย่างไร (ล่าสุดมาก่อน)
มีคำถามที่คล้ายกันอยู่แล้ว แต่พวกเขาอ้างถึง GNU find
และ POSIX แต่ฉันไม่ทราบว่า Mac OS X เป็น GNU หรือ POSIX หรืออย่างอื่น
คำตอบ:
OS X เป็นไปตามPOSIXอย่างสมบูรณ์
สิ่งที่ควรทำ:
find . -type f -name "*.txt" -print0 | xargs -0 ls -tl
หมายเหตุบางส่วน:
-t
ตัวเลือกในการจะเรียงลำดับโดยls
mtime
xargs
ls
จะใช้ในการส่งผ่านชื่อไฟล์เป็นอาร์กิวเมนต์ไปยัง โปรดทราบว่าคุณต้องใช้-print0
ในfind
และ-0
ในxargs
หากคุณมีไฟล์ที่มีช่องว่างในชื่อของพวกเขา นอกจากนี้จำนวนเงินสูงสุดของการขัดแย้งถูกจำกัด โดยARG_MAX
ตัวแปร getconf ARG_MAX
เพื่อหาวิธีที่หลายคนเหล่านี้จะป้อน-r
เพื่อกลับลำดับการจัดเรียง (→ไฟล์ที่เก่าที่สุดก่อน)find
และls
ตัวเลือกอื่น ๆ- ตามปกติ - อธิบายไว้ในคู่มือ ( man find
หรือman ls
)ARG_MAX
อักขระชื่อไฟล์(น้อยกว่า) เล็กน้อยในแบบนั้นแน่นอน
getconf ARG_MAX
จะแสดงหมายเลขนั้น
ls -t
ช่วยให้คุณมีรายชื่อยาวรวมทั้งวันที่ ฉันไม่รู้ว่าคุณกำลังพยายามทำอะไรอย่างนั้นจริง ๆ ขออภัยสำหรับสิ่งนั้น - ฉันคิดว่าคุณต้องการเห็นเช่นกัน ls -tl
-l
mtime
ls -ltr
เพื่อกลับลำดับ