เมื่อใช้ 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ตัวเลือกในการจะเรียงลำดับโดยlsmtimexargslsจะใช้ในการส่งผ่านชื่อไฟล์เป็นอาร์กิวเมนต์ไปยัง โปรดทราบว่าคุณต้องใช้-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-lmtime
ls -ltrเพื่อกลับลำดับ