ลบไฟล์ ครั้งละเยอะๆ ในคำสั่งเดียว ด้วย rm แล้ว Error Argument list too long. ลองดูทางนี้

แชร์ความรู้ Linux Ubuntu Web Server บทความ การ config server Linux FreeBSD Apache
การติดตั้ง XAMPP Mysql PHP ใครต้องการแชร์ความรู้เรื่องต่างๆ เหล่านี้ให้ ท่านหรืออื่น โพสที่หมวดนี้ได้

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

ลบไฟล์ ครั้งละเยอะๆ ในคำสั่งเดียว ด้วย rm แล้ว Error Argument list too long. ลองดูทางนี้

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ปกติถ้ามีไฟล์ หลักพัน หรือ หมื่นไฟล์ ใน Folder ของ Linux ก็ไม่ใช่ปัญหาในการลบไฟล์ด้วยคำสั่ง แต่ถ้ามีประมาณไฟล์ หลักแสน หรือ หลายๆ ล้านไฟล์ ใน Folder เดียวก็จะเกิดปัญหาขึ้นได้
ลบไฟล์เยอะๆ แล้ว Error
ลบไฟล์เยอะๆ แล้ว Error
Argument-list-too-long-linux-command.png (1.75 KiB) Viewed 1562 times
rm
หรือ
rm -rf ตางด้วย path ของ dir
เช่น

โค้ด: เลือกทั้งหมด

rm -rf /tmp/logs 
ถ้าเจอ Error
ลบไฟล์เยอะๆ แล้ว Error
ลบไฟล์เยอะๆ แล้ว Error
Argument-list-too-long-linux-command.png (1.75 KiB) Viewed 1562 times
/bin/rm: Argument list too long.


วันนี้มานำเสนอ 3 วิธีในการลบไฟล์ เยอะๆ ใน Folder กัน
วิธีแรก ทำการ List ไฟล์ที่จะลบ ก่อน ด้วย ls แล้วสั่งลบทีละไฟล์
ตัวอย่างรูปแบบคำสั่ง

โค้ด: เลือกทั้งหมด

ls -U /home/dir/ | head -16 | while read af; do rm -f "$af"; done
คำอธิบาย เป็นการลิสไฟล์และ เอาไฟล์ใหม่ ล่าสุดทีละ 16 ไฟล์ แล้ว ส่งให้คำสั่ง rm -f ช่วยลบให้ทีละไฟล์
*** เป็นวิธีการลบที่ใช้เวลาเยอะ ที่สุด ***

วิธีที่สอง ใช้คำสั่ง ค้นหาแล้วลบ ในชุดคำสั่งเดียว
ตัวอย่างรูปแบบคำสั่ง
find . -type f -delete
คำอธิบาย ค้นหาไฟล์ ใน Folder ปัจจุบัน (.) แล้ว ลบ
การลบวิํีนี้ลบไฟล์ได้เร็วกว่าวิธีแรกมากๆ

วิธีที่สาม ใช้ ภาษา perl ช่วยลบ ดังที่เรารู้กันดีอยู่แล้วว่า perl มีให้มาพร้อมใน linux (เหมือน Python)
perl -e 'for(<*>){((stat)[9]<(unlink))}'
การลบด้วย perl นี้ลบได้เร็วเช่นกัน แต่ข้อเสียคือ ลบได้เฉพาะใน folder ปัจจุบันเท่านั้น
ถ้าอยากให้ลบไฟล์ใน folder ย่อยๆ ด้วย เราต้องศึกษาการเขียนโปรแกรม ด้วย Perl เพิ่มเติม

นอกจากนี้ ยังสามารถใช้ Programing language ภาษาอื่นๆ ช่วยในการลบไฟล์ได้เช่นเดียวกัน ไม่ว่าจะเป็น PHP, Python
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 71