คำสั่งเพื่อลบไฟล์ทั้งหมดยกเว้นไฟล์ล่าสุดที่ทำงานได้ทั้งโซลาริสและลินุกซ์


0

ฉันกำลังลองหนึ่งคำสั่งซึ่งลบไฟล์ทั้งหมดออกจากตำแหน่งยกเว้นอันล่าสุด ฉันมีคำสั่งทำงานสำหรับ linux แต่มันไม่ทำงานบนเครื่อง Solaris

คำสั่งด้านล่างจะลบไฟล์ทั้งหมดยกเว้น 10 รายการสุดท้าย

ls -l /*.tps | head -n -10 | rm -rf

คำตอบ:


0
ls -t {pattern} | tail -n +2 | xargs rm

ใน Slow-mo:

  • รายการไฟล์ทั้งหมดเรียงตามเวลาใหม่สุดก่อน
  • พิมพ์เริ่มต้นด้วย 2nd (ข้ามไปก่อน)
  • ส่งชื่อไปที่ rm

ขอบคุณ @xenoid แต่มันใช้งานไม่ได้ ฉันมีคำสั่งที่ใช้งานได้ แต่มันไม่ทำงานบนกล่องโซลาริส Solaris ไม่รับอาร์กิวเมนต์ 2 ตัวสำหรับคำสั่ง head / tail (tail -n +2)
Ankit

@Ankit ทำ นี้ ช่วยด้วย?
xenoid

0

ติดตามหน้า man ของ Oracle และสมมติว่าคุณหมายถึงไฟล์ 'ล่าสุด' 'ล่าสุด' ฉันแนะนำวิธีต่อไปนี้:

ls -1tr | tail -n +11 | xargs rm สำหรับ linux และ

ls -1tr | /usr/xpg4/bin/tail -n +11 | xargs rm สำหรับ คำพยากรณ์


0

ในการลบไฟล์ทั้งหมดออกจากตำแหน่งยกเว้นไฟล์ล่าสุดคุณสามารถใช้คำสั่งข้ามแพลตฟอร์มนี้:

ls -1t /location | sed -n '2,$p' | xargs rm

โปรแกรม Sed 2,$p พิมพ์ทุกบรรทัดตั้งแต่ 2 ถึงท้ายอินพุต

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