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

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

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

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 27160
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp »

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

Code: Select all

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


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

Code: Select all

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
    Replies
    Views
    Last post

Return to “Linux - Web Server”

Who is online

Users browsing this forum: No registered users and 5 guests