ลด 50% ทุกแพ็กเกจ เวลาจำกัด เริ่มต้นที่ $2.48/mo
อ่าน 12 นาที
เซิร์ฟเวอร์และ OS

วิธีลบไดเรกทอรีบน Linux อย่างปลอดภัย: rmdir, rm -r, find

นิค ซิลเวอร์ By นิค ซิลเวอร์ อ่าน 12 นาที อัปเดตแล้ว 22 กันยายน 2025
แล็ปท็อปเดี่ยวสไตล์สมจริงในมุม 3/4 วางบนพื้นผิวเปียก หน้าจอแสดงสองบรรทัดในเทอร์มินัล: ls -ld -- '$DIR' rm -I -r -- '$DIR' จากพอร์ตด้านขวา แถบโฮโลแกรมสีไซยาน/ม่วงแดงโค้งออกไปยังโฟลเดอร์กระดาษที่ลอยอยู่ด้านขวาของแล็ปท็อป ขอบขวาของโฟลเดอร์แตกเป็นฝุ่นกระดาษละเอียดกลางอากาศ แสง BR2049 ขอบ UV ละอองฝนเบา บรรยากาศส้มโซเดียม และเส้นขอบฟ้าต่ำเพียงเส้นเดียว

เลือกเครื่องมือให้ถูก แล้วการลบโฟลเดอร์บน Linux จะกลายเป็นเรื่องง่ายมาก ใช้ rmdir สำหรับพาธที่ว่างเปล่า rm -r สำหรับไดเรกทอรีที่ยังมีข้อมูลอยู่ และ หา เมื่อต้องการลบแค่สิ่งที่อยู่ภายใน นี่คือ วิธีลบไดเรกทอรีบน Linuxพร้อมค่าเริ่มต้นที่ปลอดภัย การตรวจสอบที่รวดเร็ว และวิธีแก้ข้อผิดพลาดที่อาจขัดขวางการทำงาน ถ้าต้องการแค่คำตอบเร็ว ดูตารางสรุปก่อน แล้วค่อยอ่านต่อในส่วนของข้อควรระวัง

 

 

สรุปคำสั่ง: คัดลอก วาง แล้วไปต่อ

ก่อนจะลงรายละเอียด นี่คือคำสั่งที่ใช้บ่อยรวมไว้ในที่เดียว คัดลอกจากคอลัมน์กลาง แล้วดูหมายเหตุประกอบ

งาน คำสั่งที่ปลอดภัยที่สุด แฟล็กเสริมหรือหมายเหตุ
ลบไดเรกทอรีว่าง ลบไดเรกทอรี่ DIR or rm -d DIR เพิ่ม -p เพื่อลบไดเรกทอรีแม่ด้วย หากว่างเปล่าแล้ว
ลบไดเรกทอรีที่มีข้อมูลอยู่ โดยให้ยืนยันครั้งเดียว rm -I -r DIR สมดุลระหว่างความเร็วและความปลอดภัย
ลบไดเรกทอรีที่มีข้อมูลอยู่โดยไม่ถามยืนยัน rm -rf — DIR ยืนยันด้วย ls -ld — DIR ตรวจสอบให้แน่ใจก่อนรัน
เก็บไดเรกทอรีหลักไว้ แต่ลบเนื้อหาภายใน find DIR -mindepth 1 -delete รองรับไฟล์และโฟลเดอร์ที่ซ่อนอยู่ด้วย
ลบเฉพาะไดเรกทอรีที่ว่างเปล่า ค้นหา DIR -type d -empty -delete ใช้ทำความสะอาดหลัง deploy เสร็จได้เลย
ลบตามรูปแบบชื่อ find DIR -type d -name 'cache*' -prune -exec rm -rf {} + ทำงานได้เร็วแม้กับโครงสร้างไดเรกทอรีขนาดใหญ่

เก็บ cheat sheet นี้ไว้ใกล้มือขณะที่คุณเรียนรู้วิธีลบไดเรกทอรีใน Linux 

ลบไดเรกทอรีที่ว่างเปล่าด้วย rmdir or rm -d

ลิ้นชักตู้เก็บเอกสารเหล็กที่ดึงออกมาเต็มที่ มองเห็นราง ขาตั้ง และแผ่นรองสักหลาด ว่างเปล่าโดยสิ้นเชิง มีสติกเกอร์นูนเล็กๆ ด้านหน้าเขียนว่า RMDIR และ EMPTY แสงสีเหลืองอำพันจางๆ ลอยอยู่เบื้องหลังเส้นขอบฟ้าเบาๆ ป้ายสีฟ้าเรืองแสงริมขอบโลหะขัดเงา พื้นผิวเผยให้เห็นรอยขีดข่วนเล็กน้อยและฝุ่นละออง

ไดเรกทอรี่เปล่า เป็นกรณีที่มีความเสี่ยงต่ำ หากต้องการลบเฉพาะโฟลเดอร์ปลายสาขา rmdir ทำได้ตรงๆ เลย หรือถ้าอยากอยู่บน rm, ใช้ rm -d ก็ได้ผลเหมือนกัน ทั้งสองคำสั่งจะหยุดทันทีเมื่อพบ path ที่ไม่ว่างเปล่าซึ่งเป็นตัวช่วยที่ดีสำหรับผู้เริ่มต้นที่กำลังเรียนรู้วิธีลบไดเรกทอรีใน terminal

  • rmdir PROJECT/tmp ลบโฟลเดอร์ที่ว่างเปล่าออก และไม่แจ้งผลใดๆ เมื่อโฟลเดอร์นั้นไม่มีอยู่แล้ว
  • rmdir -p foo/bar/baz ลบ path ที่ระบุ จากนั้นลบไดเรกทอรีแม่ที่ว่างเปล่าต่อเนื่องกันไป เคลียร์โครงสร้างโฟลเดอร์ทั้งหมดในครั้งเดียว
  • rm -d empty_folder ลบได้เฉพาะเมื่อไดเรกทอรีว่างเปล่าเท่านั้น ซึ่งทำงานเหมือนกับ rmdir สำหรับผู้ที่ใช้งานบน rm.
  • rmdir –ignore-fail-on-non-empty DIR ซ่อนข้อความแจ้งข้อผิดพลาด "ไม่ว่างเปล่า" ในสคริปต์ที่ต้องการ output ที่เรียบร้อย
  • เพิ่ม -v เพื่อแสดงผลลัพธ์ เช่น rmdir -pv foo/bar/baz.

ปัญหาที่พบบ่อยเมื่อพยายามลบไดเรกทอรีใน Linux คือ หากโฟลเดอร์ยังมีไฟล์อยู่ rmdir คำสั่งจะปฏิเสธการทำงาน นั่นคือสัญญาณให้คุณเปลี่ยนไปใช้การลบแบบ recursive แทน 

อ่านเพิ่มเติม: เชื่อมต่อกับเซิร์ฟเวอร์ Linux ด้วย XRDP

ลบไดเรกทอรีที่มีเนื้อหาด้วย rm

เครื่องทำลายเอกสารอุตสาหกรรมขนาดใหญ่แบบ Ultrareal เป็นภาพหลัก โดยมีแฟ้มมะนิลาและแผ่นคั่นหลายชิ้นถูกป้อนเข้าช่องรับ แฟ้มเหล่านั้นยัดแน่นไปด้วยกระดาษ บนตัวเครื่องมีป้ายโลหะขนาดเล็กระบุว่า RM -R และมีสัญลักษณ์เตือนภัยขนาดเล็กระบุว่า FORCE

การลบแบบเรียกซ้ำคือ rm -r or rm -rf. โดยสรุป ความแตกต่างอยู่ที่ความเร็วกับการยืนยัน ผู้ที่เริ่มเรียนรู้วิธีลบไดเรกทอรีที่มีเนื้อหาใน Linux มักเริ่มจาก rm -r และเพิ่ม prompt ยืนยัน ส่วนทีมที่ทำงานแบบอัตโนมัติจะเพิ่ม -f หลังจากตรวจสอบ path ให้แน่ใจแล้ว

เริ่มจาก pattern ที่ปลอดภัยและมั่นใจได้:

  • Prompt once: ขอข้อมูลครั้งเดียว rm -I -r DIR ถามยืนยันหนึ่งครั้งก่อนเริ่มลบ เหมาะกว่า -i บนต้นไม้ขนาดใหญ่
  • ให้ยืนยันทุกขั้นตอน: rm -ri DIR ทำงานช้า แต่มีประโยชน์สำหรับโครงสร้างขนาดเล็กเมื่อต้องการดูทุกขั้นตอน
  • ลบแบบ force และ recursive: rm -rf DIR ข้ามการยืนยันและข้อผิดพลาดส่วนใหญ่ ตรวจสอบ pwd, ls -ld — DIR, และ echo "$DIR" ให้ดีก่อนกด Enter
  • โหมดรายละเอียด: -v แสดง path ที่ถูกลบทุกรายการ เช่น rm -rfv build/.
  • การป้องกัน root และ mount: ระบบสมัยใหม่จะบล็อก rm -rf / ผ่าน –preserve-rootในสคริปต์ เพิ่ม –one-file-system เพื่อไม่ให้ข้ามข้าม mount

ก่อนจะ force-delete บนเครื่องที่กำลังใช้งานอยู่ ให้ใช้เวลาสักครึ่งนาทีเพื่อตรวจสอบ target ก่อน แสดงด้วย ls -ld — "$DIR"แล้วตรวจดู quoting และ glob ให้ละเอียด วิธีเรียนรู้การลบไดเรกทอรีใน Linux ที่ถูกต้องคือลองใช้ -I ก่อน แล้วค่อยรันแบบไม่ต้องโต้ตอบ ตรวจสอบอย่างรอบคอบ สร้างนิสัยที่ทำซ้ำได้

linux-vps Linux Hosting ที่ใช้งานได้ทันที

ต้องการวิธีที่ดีกว่าในการโฮสต์เว็บไซต์และเว็บแอปของคุณ? กำลังพัฒนาโปรเจกต์ใหม่? หรือแค่ไม่อยากใช้ Windows? นั่นคือเหตุผลที่เรามี Linux VPS

เริ่มต้นใช้งาน Linux VPS ของคุณ

ชื่อแปลก ยัติภังค์นำหน้า และปัญหาที่ซ่อนอยู่

แถบเทปกาวสีเหลืองเตือนภัยดึงตึงขวางเฟรม พื้นผิววีนิลสมจริงมีรอยย่นเล็กน้อย ตัวอักษรสีดำพิมพ์ซ้ำคำว่า -TMP สลับกับ CAUTION ตลอดแนว

บางพาธขึ้นต้นด้วยขีดกลาง หรือมีไบต์ที่ทำให้การ parse ผิดพลาด ให้ส่ง เพื่อหยุดการ parse option หรือเพิ่ม ./ ไว้หน้าชื่อไฟล์

วิธีที่ปลอดภัยสำหรับชื่อไฟล์แปลก ๆ:

rm -r -- --weird
rm -r ./-cache

นิสัยเล็ก ๆ เหล่านี้ช่วยให้การลบไดเรกทอรีใน Linux ไม่น่าเครียดบน shared server และ remote session ถ้าต้องการเก็บไดเรกทอรีแม่ไว้แต่ลบเนื้อหาข้างใน ให้ใช้คำสั่งที่รองรับ depth แทน ซึ่งเราจะพูดถึงต่อไปในคู่มือ How to Delete a Directory in Linux

เก็บโฟลเดอร์ไว้ แต่ล้างข้อมูลข้างในออก

โฟลเดอร์มะนิลาสมจริงพร้อมประตูบานเล็กที่ด้านล่างของมุมข้างแท็บ บานพับเปิดเผยอให้เห็นกระแส "file shards" โฮโลแกรมหลุดร่วงลงมาเบา ๆ แท็บสลักข้อความว่า FIND และ MIND1 (สำหรับ -mindepth 1)

งานหลายอย่างต้องการไดเรกทอรีที่ว่างเปล่า ไม่ใช่ไดเรกทอรีที่หายไป ไม่ว่าจะเป็น log rotation, build pipeline หรือการจัดการ VPS มีสองแนวทางสำหรับการลบไฟล์ทั้งหมดในไดเรกทอรีใน Linux โดยยังคงไดเรกทอรีแม่ไว้

  • ข้ามไดเรกทอรีแม่ด้วย หา:
find /var/tmp/app -mindepth 1 -delete
  • หรือดำเนิน rm บนแบตช์:
find ./cache -mindepth 1 -exec rm -rf {} +

ทั้งสองวิธีจัดการไฟล์ที่ซ่อนอยู่ได้ (รวมถึง dotfile) ซึ่งเป็นจุดที่คำสั่ง rm * ทำงานพลาด ถ้าคำถามของคุณคือวิธีลบไฟล์ทั้งหมดในไดเรกทอรีใน Linux นี่คือวิธีที่เชื่อถือได้

คำสั่งบรรทัดเดียวช่วยได้มาก แต่หลายทีมต้องการกรองตามชื่อหรือ depth ตรงนี้แหละที่ หา ให้ขอบเขตที่ชัดเจนโดยไม่ต้องเดา

อ่านเพิ่มเติม: ดูรายการ Service ที่กำลังทำงานอยู่ใน Linux

ลบแบบเจาะจงด้วย หา: ชื่อ, Depth, Pruning

คุณอาจต้องการลบเฉพาะ cache tree, โฟลเดอร์ build ระดับแรก หรือ log เก่า ๆ เท่านั้น นี่คือชุด pattern กระชับสำหรับ ค้นหาลบไดเรกทอรี่ งาน

งาน คำสั่งสแนปช็อต หมายเหตุ
ลบเฉพาะ cache*/ ไดเรกทอรีภายใต้ project find . -type d -name 'cache*' -prune -exec rm -rf {} + -prune ข้ามการลงไปในไดเรกทอรีที่ตรงกัน ทำงานเร็วกว่ามากเมื่อโครงสร้างไฟล์มีขนาดใหญ่
ลบไดเรกทอรีตามระดับความลึก find ./dist -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} + กำหนดเป้าหมายเฉพาะไดเรกทอรีลูกระดับแรกภายใต้ dist/.
ลบเฉพาะไดเรกทอรีที่ว่างเปล่า find . -type d -empty -delete ใช้ทำความสะอาดหลัง deploy เสร็จได้เลย
ลบไฟล์ที่ตรงกับรูปแบบที่กำหนด find logs -type f -name '*.gz' -delete คงไฟล์ log ล่าสุดไว้โดยไม่แตะต้อง
ลบทุกอย่างแต่เก็บไดเรกทอรีหลักไว้ find /data/tmp -mindepth 1 -delete เซอร์วิสต่าง ๆ ยังคงใช้งานไดเรกทอรีหลักได้ตามปกติ

ใช้ -print สำหรับรันทดสอบก่อน แล้วค่อยลบออกเมื่อต้องการรันจริง นี่คือแนวทางปฏิบัติจริงของการลบไดเรกทอรีใน Linux ที่กำหนดขอบเขตได้ชัดเจนและดำเนินการได้รวดเร็ว Gotcha บน BusyBox บางรุ่นที่ตัดฟีเจอร์ออกไปมาก คำสั่ง -delete อาจไม่มีให้ใช้ ให้ใช้ -exec rm -rf {} + แทนที่นี้

รูปแบบเหล่านี้ครอบคลุมกรณีการใช้งานส่วนใหญ่ได้ดี เพิ่มมาตรการป้องกันเพื่อหลีกเลี่ยงความผิดพลาดที่เกิดขึ้นนานครั้งแต่สร้างความเสียหายสูง

ระบบป้องกันที่ช่วยให้คุณไม่พลาด

ชุดแอสเซมบลี่ล็อคเอาต์/แท็กเอาต์พัดล็อคและแฮสพ์ระดับอัลตราเรียลสติกเป็นฮีโร่คนเดียว เหล็กขัดเงาและเคลือบแดงที่มีรอยขีดข่วน หยดน้ำเหงื่อบนโค้งล็อค แท็กความปลอดภัยไฟเบอร์แขวนจากแฮสพ์พร้อมอักษรหลักสามตัว RM -I, ONE FS, PRESERVE ROOT

คำสั่งที่ทรงพลังควรมีค่าเริ่มต้นที่รอบคอบ สร้างนิสัยเหล่านี้ไว้ เพื่อที่การลบไดเรกทอรีใน Linux ด้วยคำสั่งต่าง ๆ จะไม่พาคุณไปสู่ปัญหาที่ไม่คาดคิด

  • ขอให้แสดงข้อความยืนยันครั้งเดียวด้วย rm -I -r DIR ขณะที่คุณตรวจสอบพาธบนหน้าจอ
  • ใส่เครื่องหมายคำพูดให้พาธทุกครั้ง: rm -rf — "$DIR" ป้องกันปัญหาจากช่องว่าง glob และชื่อที่ขึ้นต้นด้วยขีดลบ
  • ตรวจสอบเป้าหมายที่แน่ชัด: ls -ld — "$DIR" แสดงหนึ่งบรรทัดพร้อม mode เจ้าของ และพาธ
  • การอยู่ภายใน filesystem เดียวกัน: rm -rf –one-file-system "$DIR" ป้องกันการข้ามเข้า mounted volumes
  • เปิดการป้องกัน Root ไว้ และคง –preserve-root ในสถานที่
  • ล้าง immutable bit เมื่อจำเป็น: lsattr -d "$DIR" เพื่อตรวจสอบ, chattr -i "$DIR" เพื่อลบออก

ถ้าการลบยังล้มเหลวหรือค้างอยู่ ให้ตรวจสอบสาเหตุที่พบบ่อยตามลำดับ

ทดสอบการลบบน VPS ของ Cloudzy ใน Linux แล้วทำงานต่อได้เลย

Ultrareal 1U rack server sits firmly on a cloud (cloud = VPS). A short SFP+ fiber patch links the server to an open laptop at 3/4 angle. On the laptop's glassy terminal, two big stacked engravings: RM -I -R and ROLLBACK (toggle dot lit). On the rack face, small badges: NVME, 10 GBPS, DDR5.

ถ้าต้องการเครื่อง remote ที่เสถียรสำหรับทดลอง rm, rmdir และ หา ปลอดภัย, เปิดใช้งาน การโฮสติ้ง Linux VPS และทำงานใน shell ที่สะอาด ราคาเข้าถึงได้ รวดเร็ว และพร้อมให้บริการใน 12 สถานที่ทั่วโลก พร้อม 11 การแจกจ่าย Linux พร้อมใช้งานทันที คุณได้รับ การเข้าถึง root, NVMe SSD ที่เก็บข้อมูล พื้นที่จัดเก็บข้อมูล และ DDR5 RAM บนแพ็กเกจใหม่ พร้อมทั้ง การป้องกัน DDoS และ uptime 99.95% ไม่มีสัญญาผูกมัด แบนด์วิธสูงและ latency ต่ำรวมอยู่ในแพ็กเกจ รองรับการเชื่อมต่อสูงสุด 10 Gbps ระบุไว้บนการ์ดแพ็กเกจ

  • เครือข่ายโลก: deploy ได้มากกว่า 12 ที่ตั้ง ครอบคลุม New York, Los Angeles, Miami, Amsterdam, London, Germany, Switzerland, Utah, Dallas, Las Vegas และ Singapore เพื่อเส้นทางที่เร็วขึ้นถึงผู้ใช้ของคุณ
  • Root access + 11 distros: เลือก Linux ที่คุณต้องการและควบคุมได้เต็มที่ตั้งแต่วันแรก
  • ฮาร์ดแวร์สมัยใหม่: NVMe SSD storage และ DDR5 RAM ขับเคลื่อน instances ประสิทธิภาพยังคงคมชัดแม้ I/O หนัก
  • เครือข่าย + เวลาทำงาน: การเชื่อมต่อ latency ต่ำ แบนด์วิธสูง และเป้าหมาย uptime 99.95% ช่วยให้งานที่กำหนดเวลาทำงานได้ตรงเวลา
  • ความปลอดภัย: การป้องกัน DDoS ครอบคลุมทุก server ทำให้การบำรุงรักษาประจำไม่สะดุด
  • ความสะดวก: ตัวเลือก OS ที่ติดตั้งมาพร้อม, IPv6 ฟรี และช่องทางชำระเงินหลายรูปแบบ ทำให้การตั้งค่าตรงไปตรงมา

ต้องการ desktop เต็มรูปแบบ? เลือก Linux RDP one-click app ระหว่าง checkout จะได้ Linux VPS พร้อม XRDP, GDM3และ GNOME GUI ของ GNOME ติดตั้งไว้แล้วใน Ubuntuเพื่อ remote เข้าใช้งานได้ด้วยคลิกเดียว รองรับ 12 ที่ตั้งเดิม และคง uptime 99.95% เป้าหมาย มี ไม่มีค่าใช้งานเพิ่มเติม สำหรับการตั้งค่า RDP ที่ติดตั้งไว้ล่วงหน้า

โดยสรุป เปิด Linux VPS ราคาประหยัด เลือก distro ที่ต้องการ เก็บสิทธิ์ root ไว้ และถ้าจำเป็นให้เพิ่ม Linux RDP desktop ระหว่างการสั่งซื้อ จากนั้นฝึกใช้คำสั่งลบแบบ interactive สร้าง snapshot แล้วทำซ้ำจนคำสั่งชุดนี้คล่องมือ

แก้ปัญหา: "Permission Denied", "Directory Not Empty" และ path ที่ยังถูกใช้งานอยู่

โฟลเดอร์ขนาดใหญ่ตั้งอยู่เหนือช่องแคบ (ช่องนี้แทนสัญลักษณ์การแก้ไขปัญหา พร้อมไอคอนสลักไว้); ภายในมีโฟลเดอร์ย่อยและไอคอน .dotfiles ที่เลือนหายลงไป ด้านข้างช่องสลักคำจากบนลงล่าง: SYMPTOM, CHECK, FIX; อีกด้านหนึ่ง: NOT EMPTY, LOOK, FIND -DELETE.

ปัญหาส่วนใหญ่เกิดซ้ำในรูปแบบเดิม ใช้ขั้นตอน symptom → check → fix เพื่อให้การลบไดเรกทอรีใน Linux ไม่สะดุดการ deploy

1) ขึ้น "Permission denied" กับไดเรกทอรีที่คุณเป็นเจ้าของ
ตรวจสอบ attribute ด้วย lsattr -d DIRถ้ามี immutable flag i ให้ลบออกด้วย sudo chattr -i DIRแล้วลองใหม่อีกครั้ง พบได้บ่อยบนระบบที่ hardened และ container บางตัว

2) ขึ้น "Operation not permitted" แม้จะใช้ sudo
ตรวจสอบว่า mount ไม่ได้อยู่ในโหมด read-only mount | grep DIR or findmnt DIR จะบอกสถานะปัจจุบัน ให้ remount เป็น read-write ก่อนดำเนินการ หรือเลือก path อื่นแทน

3) ขึ้น "Directory not empty" หลังจากใช้ rmdir
ยังมี entry ค้างอยู่ ให้เปลี่ยนไปใช้:

find DIR -mindepth 1 -delete

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

4) service สร้างโฟลเดอร์ขึ้นมาใหม่
มี process กำลังเขียนไปยัง path นั้น หยุดหรือ restart ให้เรียบร้อยก่อน แล้วค่อยลบ ถ้า environment เสียหายด้วย คู่มือเรื่อง systemctl คำสั่งไม่พบ จะช่วยแก้ปัญหานั้นก่อน ตัวอย่างที่เจอจริง: Nginx กำลังเขียนไปที่ /var/log/nginx/ บนเครื่อง staging; เมื่อหยุด nginx.service ล้าง lsofการลบก็สำเร็จ และ log กลับมาทำงานได้ตามปกติ

5) ขึ้น "Device or resource busy"
มี process กำลังเปิด handle อยู่ภายในไดเรกทอรีนั้น lsof +D ไดเรกทอรี่ or fuser -vm ไดเรกทอรี่ จะแสดงสิ่งที่กำลังทำงานอยู่ หยุด process นั้นให้เรียบร้อยแล้วค่อยลบ ถ้าต้องการดู socket อย่างรวดเร็วก่อนล้าง log ให้ใช้ คำสั่ง Netstat บน Linux บทความนี้ครอบคลุมการตรวจสอบเบื้องต้นอย่างรวดเร็ว

6) ชื่อไฟล์ที่ผิดปกติ: เว้นวรรค, ขึ้นบรรทัดใหม่, หรือขึ้นต้นด้วยขีดลบ
ใช้ or ./ ไว้หน้าชื่อที่ขึ้นต้นด้วยขีดลบ และใส่เครื่องหมายคำพูดครอบทุก string สำหรับการจัดการชื่อไฟล์แปลกๆ จำนวนมาก ให้รัน find . -print0 | xargs -0 เพื่อให้ whitespace ไม่ทำให้คำสั่งพัง

เมื่อแก้ปัญหาเหล่านี้แล้ว อุปสรรคส่วนใหญ่ก็หมดไป ถ้าไม่ต้องการลบถาวร ให้ใช้วิธี trash แทน

ย้ายไป Trash แทนการลบทิ้ง: trash-cli และ ถังขยะ

ถังขยะบนเดสก์ท็อปสีน้ำเงินสมจริง (พลาสติกด้านมีรอยฉีด มีช่องเปิด) มองเห็นขอบโฟลเดอร์กระดาษพับโผล่ที่ช่อง สลักตามขอบ: TRASH-CLI, TRASH มีป้ายด้านข้างเล็กๆ แสดง RESTORE เพื่อบ่งบอกว่าสามารถย้อนกลับได้

ไม่จำเป็นต้องลบทุกอย่างออกอย่างถาวร เดสก์ท็อปและเซิร์ฟเวอร์ที่รองรับ GLib รองรับ trash flow เพื่อให้คุณตรวจสอบและกู้คืนไฟล์ได้ ถ้ากำลังเรียนรู้วิธีลบไดเรกทอรีใน Linux และต้องการตัวช่วยกันพลาด ลองใช้คำสั่งเหล่านี้:

  • ลบไฟล์ PATH ย้ายไฟล์และไดเรกทอรีไปยัง trash gio list trash:// ใช้ดูรายการไฟล์ใน trash
  • กับ trash-cli, ใช้ ลบ PATH, trash-list, trash-restore และ trash-empty สำหรับ workflow บน command line แบบง่าย

ช้ากว่า rmแต่ความปลอดภัยที่ได้มาคุ้มค่า ถ้าต้องการขั้นตอนตรวจสอบเพิ่มเติม ดังนั้น ถ้าต้องการเรียนรู้วิธีลบไดเรกทอรีใน Linux โดยไม่เสี่ยงกับข้อมูลจริง ให้เริ่มจาก trash ก่อน แล้วค่อยเปลี่ยนมาใช้ rm.

ความคิดเห็นสุดท้าย

ตอนนี้คุณมีชุดเครื่องมือครบสำหรับการลบไดเรกทอรีใน Linux ซึ่งรวมถึง rmdir สำหรับพาธที่ว่างเปล่า rm -I -r สำหรับการลบแบบ recursive ที่ปลอดภัย, rm -rf หลังจากตรวจสอบเป้าหมายแล้วเท่านั้น และ find -mindepth 1 -delete เมื่อต้องการล้างเนื้อหาภายในโดยไม่ลบไดเรกทอรีหลัก ใส่เครื่องหมายคำพูดครอบ path, คง –preserve-rootไว้, อยู่บน filesystem เดียวกัน และลบ immutable bit ออกถ้าติดขัด ส่วนการตรวจสอบแก้ปัญหาอื่นๆ จะจัดการส่วนที่เหลือให้

และอย่าลืมว่า ถ้าต้องการเซิร์ฟเวอร์ที่พร้อมใช้สำหรับฝึกจริง ให้เปิด Cloudzy Linux VPS เซิร์ฟเวอร์ ราคาจับต้องได้และเหมาะสำหรับการทดลองอย่างปลอดภัย และด้วย Linux RDP แบบคลิกเดียว คุณยังได้ desktop session ด้วย เพื่อให้สามารถทดลองลบไฟล์ผ่าน GUI แบบเต็มรูปแบบได้เลย

 

คำถามที่พบบ่อย

rm กับ rmdir ต่างกันอย่างไร?

rmdir ลบได้เฉพาะไดเรกทอรีที่ว่างเปล่า และลบไดเรกทอรีแม่ที่กลายเป็นว่างได้ด้วย option -p ส่วน rm ลบได้ทั้งไฟล์และไดเรกทอรี ใช้ -r สำหรับการลบแบบ recursive และ -I หรือ -i เพื่อให้ระบบถามก่อนลบ

จะลบโฟลเดอร์พร้อมทุกอย่างข้างในอย่างถาวรได้อย่างไร?

ใช้ rm -rf DIR หลังจากตรวจสอบ path ให้แน่ใจก่อน เพิ่ม -v ถ้าต้องการดู log ทีละบรรทัด ผู้ดูแลระบบบางคนยังนิยมรันทดสอบด้วย rm -I -r ก่อนรันจริงด้วย

จะลบเฉพาะเนื้อหาข้างใน โดยไม่ลบไดเรกทอรีหลักได้อย่างไร?

ใช้คำสั่ง find DIR -mindepth 1 -delete วิธีนี้จะล้างข้อมูลภายในไดเรกทอรีบน Linux และยังเก็บไดเรกทอรีแม่ไว้ให้ service ต่าง ๆ ใช้งานได้

ทำไม rmdir ขึ้น "Directory not empty" ทั้ง ๆ ที่ไม่เห็นไฟล์อยู่เลย?

ยังมีไฟล์ซ่อนอยู่ ใช้ ls -A เพื่อแสดงไฟล์เหล่านั้น แล้วจึงใช้คำสั่ง find -mindepth 1 -delete

จะแก้ปัญหา "Operation not permitted" หรือ "Permission denied" ได้อย่างไร?

ตรวจสอบ immutable bit ด้วย lsattr -d DIR แล้วลบออกด้วย sudo chattr -i DIR ถ้าพบว่ามีการตั้งค่าไว้ นอกจากนี้ให้ตรวจสอบว่า mount ไม่ได้อยู่ในโหมด read-only หาก service สร้าง path ขึ้นมาใหม่ระหว่างการลบ ให้แก้ปัญหาที่ unit นั้นก่อน โดยดูส่วน systemctl ที่ลิงก์ไว้ด้านบน

แชร์

บทความอื่นจากบล็อก

อ่านต่อ

ภาพหน้าปกบทความแอปที่โฮสต์เองที่ดีที่สุดสำหรับ Cosmos Cloud พร้อมแผงแอปรอบ Cosmos dashboard
เซิร์ฟเวอร์และ OS

แอปที่โฮสต์เองที่ดีที่สุดสำหรับ Cosmos Cloud: ไฟล์, มีเดีย, รหัสผ่าน, ระบบอัตโนมัติ และอื่น ๆ อีกมาก

Maybe คุณตั้งค่า Cosmos Cloud เรียบร้อยแล้วและอยากรู้ว่าแอปไหนเข้ากันได้ดี หรืออาจยังไม่แน่ใจเรื่อง Cosmos และแค่อยากดูว่ามันเหมาะกับเวิร์กโฟลว์ของคุณแค่ไหน

นิค ซิลเวอร์นิค ซิลเวอร์ อ่าน 16 นาที
Portainer vs Cosmos Cloud สำหรับการจัดการแอป Docker พร้อมไดอะแกรม Hybrid Setup และบล็อก Ops กับ Access แบบ Neon
เซิร์ฟเวอร์และ OS

Portainer vs Cosmos Cloud: ตัวเลือกไหนเหมาะกับการจัดการแอป Docker

ถ้าคุณรู้จัก Docker อยู่แล้วและต้องการวิธีที่ดีกว่าในการรัน App Stack ที่กำลังขยาย นี่คือคำตอบสั้นๆ สำหรับ Portainer vs Cosmos Cloud: Portainer เป็นตัวเลือกที่แข็งแกร่งกว่าสำหรับการควบคุมโดยตรง

นิค ซิลเวอร์นิค ซิลเวอร์ อ่าน 14 นาที
Cosmos Cloud vs CasaOS vs Umbrel กราฟิกประกอบที่แสดงสามเส้นทาง Self-Hosted ภายในเครือข่ายคลาวด์แบบนามธรรม
เซิร์ฟเวอร์และ OS

Cosmos Cloud vs CasaOS vs Umbrel: แพลตฟอร์ม Self-Hosted ไหนเหมาะกับการใช้งานของคุณ?

คำตอบสั้นๆ คือ CasaOS ยังเป็นจุดเริ่มต้นที่ง่ายที่สุด Umbrel มีอินเทอร์เฟซที่เรียบร้อยและดูแลการคัดสรรได้ดีที่สุด ส่วน Cosmos Cloud เหมาะกว่าเมื่อคุณต้องการควบคุม Domain ได้แน่นขึ้น

นิค ซิลเวอร์นิค ซิลเวอร์ อ่าน 11 นาที

พร้อม Deploy แล้วหรือยัง? เริ่มต้นที่ $2.48/เดือน

Cloud อิสระ ให้บริการมาตั้งแต่ปี 2008. AMD EPYC, NVMe, 40 Gbps. คืนเงินภายใน 14 วัน