วิธีแก้ไข "Rmdir: ข้อผิดพลาดไดเร็กทอรีไม่ว่างเปล่า” ใน Linux

โพสต์นี้จะแจกแจง 5 วิธีในการแก้ไข "Rmdir: ข้อผิดพลาดไดเร็กทอรีไม่ว่างเปล่า” ใน Linux

"วิธีแก้ปัญหาข้อผิดพลาด "ไดเร็กทอรีไม่ว่างเปล่า" เมื่อรันคำสั่ง rmdir ในแบตช์สคริปต์ - stack overflow

ข้อผิดพลาด "Rmdir: ไดเร็กทอรีไม่ว่างเปล่า" เป็นปัญหาทั่วไปในระบบ Linux โดยเกิดขึ้นเมื่อผู้ใช้งานพยายาม ลบไดเร็กทอรีที่ไม่ว่างเปล่าบน Linux ซึ่งทำให้ไม่สามารถลบไดเร็กทอรีโดยใช้งานคำสั่ง rmdir ได้ ส่วนด้านล่างนี้ ครอบคลุมถึงวิธีแก้ปัญหาหรือแก้ไขข้อผิดพลาดนี้บนระบบ Linux

ข้อผิดพลาดไดเร็กทอรี rmdir ไม่ว่างเปล่า

ในบทความนี้

วิธีที่ 1: ลบไดเร็กทอรีที่ไม่ว่างเปล่าใน Linux โดยใช้งานคำสั่ง rm

วิธีแก้ปัญหาที่ง่ายที่สุดคือ ใช้งาน rm แทน rmdir ไวยากรณ์พื้นฐานของคำสั่ง rm คือ rm <options> <file> หากไดเร็กทอรีว่างเปล่า แฟล็ก "-d" จะลบออก อย่างไรก็ตาม ในกรณีที่ไดเร็กทอรีไม่ว่างเปล่า สามารถใช้งานแฟล็ก "-r" เพื่อลบไดเร็กทอรีที่ระบุ และเนื้อหาในไดเร็กทอรีซ้ำได้

  • เป็นตัวอย่าง ให้พิจารณาสิ่งต่อไปนี้:

rm -r directory

  • หากต้องการบังคับให้ลบไดเร็กทอรี ให้ใช้งานแฟล็ก -f ดังต่อไปนี้:

rm -rf directory

  • หากเส้นทางไดเร็กทอรีหรือชื่อของคุณมีช่องว่าง ให้ล้อมรอบด้วยเครื่องหมายคำพูด:

rm -rf "directory"

  • หากต้องการแก้ไขปัญหาการอนุญาต ให้ใช้งาน sudo:

sudo rm -rf directory

  • สุดท้ายนี้ ให้หลีกเลี่ยงการใช้งาน sudo rm -rf / ซึ่งจะลบเนื้อหาของไดเร็กทอรีราก นั่นคือ ระบบไฟล์ทุกระบบที่ต่อเชื่อม

วิธีที่ 2: ลบไดเร็กทอรีไม่ว่างเปล่าใน Linux โดยใช้งาน File Browser

เมื่ออินเทอร์เฟซผู้ใช้งานแบบกราฟิกล้มเหลว เราจะหันไปใช้งานบรรทัดคำสั่ง แม้จะฟังดูแปลก แต่ในกรณีนี้ กลับตรงกันข้ามเลย ผู้ใช้งานหลายคนรายงานว่า การลบโฟลเดอร์ผ่าน File Browser นั้นได้ผลสำหรับพวกเขา มันคุ้มค่าที่จะลองใช้งานก่อนที่จะไปยังตัวเลือกอื่นๆ

ขั้นตอนที่ 1 ไปที่ File Browser และค้นหาไดเร็กทอรีที่คุณต้องการลบ คลิกขวาที่ไฟล์แล้วเลือก ลบ

ลบไดเร็กทอรีไม่ว่างเปล่า

ขั้นตอนที่ 2 ยืนยันว่า ไฟล์ถูกลบแล้ว ขณะนี้ ไฟล์ได้ถูกลบออกจากเซิร์ฟเวอร์แล้ว

ยืนยันไฟล์ที่ถูกลบ

วิธีที่ 3: แก้ไข RMdir: ไดเร็กทอรีไม่ว่างเปล่าเกิดข้อผิดพลาดใน Linux โดยการตรวจสอบระบบไฟล์

ข้อผิดพลาดของระบบไฟล์เป็นสาเหตุทั่วไปของการลบไฟล์ และปัญหาอื่นๆ ด้วยเหตุนี้ ยูทิลิตี้ FSCK (การตรวจสอบความสอดคล้องของระบบไฟล์) จึงมีประโยชน์ การดำเนินการตามที่อธิบายไว้ต่อไปนี้:

ขั้นตอนที่ 1 สังเกตระบบไฟล์ที่คุณต้องการรัน fsck ด้วยคำสั่งนี้

df -h

ขั้นตอนที่ 2 ลองพิจารณา /dev/sda4 เป็นตัวอย่าง หากต้องการยกเลิกการต่อเชื่อม ให้ใช้งานคำสั่งนี้ คุณจะต้องใช้งาน CD สดเพื่อยกเลิกการต่อเชื่อมหากเป็นระบบไฟล์รูท

sudo umount /dev/sda4

ขั้นตอนที่ 3 จากนั้น ให้รันคำสั่งต่อไปนี้ ปฏิบัติตามคำแนะนำบนหน้าจอเพื่อตรวจสอบการดำเนินการคืนค่า

sudo fsck /dev/sda4

ขั้นตอนที่ 4 หลังการซ่อมแซม ให้ป้อนคำสั่งนี้เพื่อติดตั้งอุปกรณ์อีกครั้ง และดูว่า ปัญหาได้รับการแก้ไขหรือไม่

sudo mount /dev/sda4

วิธีที่ 4: ลบไดเร็กทอรีไม่ว่างเปล่าจากเซิร์ฟเวอร์ไฟล์

มีหลายครั้งที่ไม่สามารถลบไดเร็กทอรีได้เนื่องจากเป็นส่วนหนึ่งของระบบไฟล์ที่ต่อเชื่อม CIFS (Samba) ไม่สามารถพูดถึงไฟล์ได้เนื่องจากเป็นลิงก์สัญลักษณ์ที่ใช้งานไม่ได้ คุณไม่เห็นสิ่งนี้ผ่าน CIFS ดังนั้น คุณอาจเชื่อว่า ไดเร็กทอรีว่างเปล่า ในกรณีเช่นนี้ คุณต้องลบไฟล์ออกจากเซิร์ฟเวอร์ไฟล์โดยตรง

วิธีที่ 5: แก้ไข RMdir: ไดเร็กทอรีไม่ว่างเปล่าเกิดข้อผิดพลาดใน Linux โดยการปิดแอปโหนด

ผู้ใช้งานรายงานอินสแตนซ์ที่ไดเร็กทอรีเปิดอยู่ในแอป node.js หรือที่เซิร์ฟเวอร์โหนดเข้าถึงไฟล์ในไดเร็กทอรีเป็นระยะๆ ส่งผลให้มีไฟล์เมตารองอยู่ภายในไดเร็กทอรีอยู่ตลอดเวลา ในกรณีเช่นนี้ การปิดแอปพลิเคชันหรือเซิร์ฟเวอร์ที่กำลังเข้าถึงไดเร็กทอรีจะช่วยแก้ไขปัญหาได้

ขั้นตอนที่ 1 แอปพลิเคชัน Node.js สามารถปิดได้หลายวิธี หากแอปพลิเคชันทำงานในคอนโซล คุณสามารถปิดได้โดยกด CTRL + C อย่างไรก็ตาม หากต้องการยุติแอปพลิเคชัน Node.js โดยทางโปรแกรม ให้ใช้งาน process module's exit() method

ออบเจ็กต์ กระบวนการ เป็นโมดูลในตัวที่มีข้อมูลเกี่ยวกับกระบวนการ Node.js ที่กำลังทำงานอยู่ นอกจากนี้ ยังช่วยให้คุณจัดการกระบวนการ Node.js ปัจจุบัน ได้จากภายในแอปพลิเคชัน

process.exit([code]);

ขั้นตอนที่ 2 กระบวนการ exit() วิธีการสั่งให้ Node.js ยุติกระบวนการทันที การโทรกลับที่รอดำเนินการ คำขอเครือข่ายที่ยังดำเนินการอยู่ คำขอฐานข้อมูลที่กำลังดำเนินการ หรือการเข้าถึงระบบไฟล์จะถูกยกเลิกทันที

คุณยังสามารถป้อน process.exit() ค่าจำนวนเต็มเพื่อส่งโค้ดทางออกไปยังระบบปฏิบัติการได้:

process.exit(5)

ขั้นตอนที่ 3 รหัสทางออกถูกตั้งค่าเป็น 0 ซึ่งบ่งบอกถึงความสำเร็จตามค่าเริ่มต้น รหัสออก 5 หมายถึง "ข้อผิดพลาดร้ายแรง" ซึ่งบ่งชี้ว่า Node.js พบข้อผิดพลาดที่ไม่สามารถกู้คืนได้ รหัสออกแต่ละรหัสมีความหมายเฉพาะที่คุณสามารถใช้งานในแอปพลิเคชันของคุณเพื่อแจ้งให้ระบบปฏิบัติการทราบว่า เหตุใดแอปพลิเคชันของคุณจึงถูกยกเลิก

คุณยังสามารถใช้งาน คุณสมบัติ process.exitCode เพื่อตั้งค่ารหัสทางออกได้:

process.exitCode = 5

ขั้นตอนที่ 4 หากคุณต้องการยุติกระบวนการอย่างสวยงาม คุณต้องส่งสัญญาณ SIGTERM ไปยังกระบวนการ จากนั้น ใช้งานตัวจัดการเหตุการณ์ของกระบวนการเพื่อรับฟังเหตุการณ์นี้

นี่คือตัวอย่างของเซิร์ฟเวอร์ Node.js HTTP ที่รอให้เหตุการณ์ SIGTERM ปิดเซิร์ฟเวอร์อย่างดี:

const express = require('express')
const app = express()

app.get('/', (req, res) => {
res.send('Hello world!')
})

const server = app.listen(3500, () => console.log(`Server started!`))

process.on('SIGTERM', () => {
server.close(() => console.log(`Server closed!`))
})

หากต้องการส่งสัญญาณ SIGTERM ไปยังกระบวนการ Node.js ปัจจุบัน ให้ใช้งานวิธี process.kill()

process.kill(process.pid, "SIGTERM");

จะทำอย่างไรถ้าคุณลบไดเร็กทอรีที่ไม่ว่างเปล่าใน Linux โดยไม่ตั้งใจ?

การลบไดเร็กทอรีที่ไม่ว่างเปล่าใน Linux โดยไม่ได้ตั้งใจอาจเป็นประสบการณ์ที่น่าหงุดหงิด และใช้เวลานาน โชคดีที่มีเครื่องมือเพื่อช่วยกู้คืนข้อมูลที่ถูกลบใน Linux รวมถึง Wondershare Recoverit Linux Recovery

Recoverit Linux Recovery เป็นเครื่องมือการกู้คืนข้อมูลที่มีประสิทธิภาพซึ่งออกแบบมาเฉพาะสำหรับระบบ Linux อัลกอริธึมขั้นสูง และอินเทอร์เฟซที่ใช้งานง่ายทำให้ Recoverit ง่ายต่อการกู้คืนไฟล์และไดเร็กทอรีที่ถูกลบจาก Linux ฟีเจอร์หลักบางประการ ได้แก่:

Wondershare Recoverit - ซอฟต์แวร์กู้คืน Linux ที่ปลอดภัย และเชื่อถือได้ของคุณ

มีผู้ดาวน์โหลดแล้ว 5,481,435 คน

กู้คืนเอกสาร รูปภาพ วิดีโอ เพลง อีเมล และไฟล์ประเภทอื่นๆ มากกว่า 1,000 ประเภทอย่างมีประสิทธิภาพ ปลอดภัย และสมบูรณ์

เข้ากันได้กับ Linux distros กระแสหลักทั้งหมด รวมถึง Ubuntu, Linux Mint, Debian, Fedora, Solus, Openuse, Manjaro ฯลฯ

ช่วยเหลือในสถานการณ์การสูญหายของข้อมูลมากกว่า 500 สถานการณ์ เช่น การลบ การจัดรูปแบบดิสก์ ระบบปฏิบัติการขัดข้อง ไฟดับ การโจมตีของไวรัส พาร์ติชันที่สูญหาย และอื่นๆ อีกมากมาย

อินเทอร์เฟซแบบชี้ และคลิกที่เรียบง่ายช่วยให้คุณสามารถกู้คืนข้อมูลจากฮาร์ดไดรฟ์ Linux ได้ด้วยการคลิกเพียงไม่กี่ครั้ง

ทำงานผ่านการเชื่อมต่อระยะไกล คุณสามารถกู้คืนข้อมูลที่สูญหายได้ แม้ว่าอุปกรณ์ Linux ของคุณจะขัดข้องก็ตาม

Wondershare Recoverit ช่วยลดความยุ่งยากในการกู้คืนข้อมูล Linux ใน 3 ขั้นตอนง่ายๆ คุณสามารถกู้คืนข้อมูลของคุณได้

ขั้นตอนที่ 1 เลือก "การกู้คืน Linux"

เริ่มซอฟต์แวร์ Wondershare Recoverit บนอุปกรณ์ Linux ของคุณ จากนั้น เลือกตัวเลือก NAS และ Linux จากด้านซ้ายของอินเทอร์เฟซหลัก คลิก การกู้คืน Linux เพื่อดำเนินการต่อ

คลิกการกู้คืน linux

ขั้นตอนที่ 2 เชื่อมต่อกับคอมพิวเตอร์ Linux ของคุณ

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

สร้างการเชื่อมต่อระยะไกลใน linux

Recoverit จะเปิดตัวการสแกนอัตโนมัติเพื่อค้นหาข้อมูลที่สูญหายบนคอมพิวเตอร์ Linux ของคุณในขณะที่คุณรอการเชื่อมต่อที่จะสร้าง

ขั้นตอนที่ 3 ดูตัวอย่างไฟล์ และกู้คืน

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

สแกนไฟล์ที่ถูกลบโดยอัตโนมัติ

Recoverit ช่วยให้คุณสามารถตรวจสอบไฟล์เมื่อการสแกนเสร็จสิ้นเพื่อให้แน่ใจว่าเป็นไฟล์ที่คุณต้องการกู้คืน หากต้องการบันทึกไดเร็กทอรีที่ถูกลบจากเครื่อง Linux ของคุณ ให้เลือก กู้คืน ทันที

ดูตัวอย่าง และกู้คืนไฟล์ที่ถูกลบ

ซอฟต์แวร์จะถามคุณว่า คุณต้องการเก็บไฟล์ที่กู้คืนไว้ในอุปกรณ์ของคุณที่ไหน คลิก กู้คืน เพื่อรับข้อมูลที่กู้คืน

บันทึกไฟล์ที่กู้คืนไปยังตำแหน่งอื่น
ดาวน์โหลดฟรี

สำหรับ Windows Vista / 7 / 8 / 10 / 11

ดาวน์โหลดฟรี

สำหรับ macOS X 10.10 หรือใหม่กว่า

หากการอ่านคำแนะนำในการกู้คืนทำให้คุณไม่สบายใจ คุณสามารถรับชมวิดีโอแนะนำต่อไปนี้

ดาวน์โหลดฟรี

สำหรับ Windows Vista / 7 / 8 / 10 / 11

ดาวน์โหลดฟรี

สำหรับ macOS X 10.10 หรือใหม่กว่า

สรุป

เมื่อใช้งานคำสั่ง "rmdir" เพื่อลบไดเร็กทอรีที่ไม่ว่างเปล่า ข้อผิดพลาด "ลบไดเร็กทอรีไม่ว่างเปล่า" จะเกิดขึ้น โพสต์นี้จะอธิบายว่า ทำไมข้อผิดพลาด "remove Directory not Empty" จึงเกิดขึ้น และวิธีแก้ไข ตัวอย่างต่างๆ ของการลบไดเร็กทอรีที่ไม่ว่างเปล่าก็แสดงไว้เพื่อความชัดเจนเช่นกัน และหากคุณลบไดเร็กทอรีที่ไม่ว่างเปล่าใน Linux โดยไม่ได้ตั้งใจ Recoverit Linux Recovery จะช่วยคุณได้ ดาวน์โหลดเลย!