เหตุใดฉันจึงไม่สามารถลบโฟลเดอร์ได้


14
Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

ฉันพยายามลบโฟลเดอร์เหล่านี้จาก terminal ด้วย:

rm -r

2
หากข้อผิดพลาดที่ส่งออกมาจากหอยโข่งคุณสามารถเพิ่มการถ่ายภาพหน้าจอคำถามของคุณ นอกจากนี้เอาต์พุตของrm -rเทอร์มินัลคืออะไร? คุณได้ลองคำตอบของโพสต์นี้หรือยัง?
Lucio

1
ใช้rm -rfแทน
nickanor

ฉันถูกใช้rm -Rfเพื่อลบไดเรกทอรีซ้ำอาจเป็นงานนี้สำหรับคุณ ตัวพิมพ์ใหญ่ R หมายถึงเรียกซ้ำดูหน้าคนman rm
อ่าน

1
คุณมีสิทธิ์ลบไดเรกทอรีนี้หรือไม่? โปรดดำเนินการls -laและวางที่นี่เพื่อยกเลิกตัวเลือกนี้
revnoise

ฉันคิดว่าโฟลเดอร์ถูกลบไปก่อนแล้วจึงลองลบบน Ubuntu จากนั้นพยายามที่จะลบบน Windows แต่กล่าวว่าข้อผิดพลาด Directory not empty แต่สัญญาที่ว่างเปล่าทั้งหมด บน windows มันบอกว่าข้อผิดพลาดError x00000
tepheno

คำตอบ:


10

คุณลองsudo rm -rไหม มีไฟล์ประเภทใดบ้าง? คุณสามารถลบไฟล์ทั้งหมดก่อนจากนั้นลบโฟลเดอร์ มันเป็นงานพิเศษ แต่บางครั้งมันก็คุ้มค่าที่จะทำงานให้เสร็จ

sudo สำหรับการดำเนินการ superuser


ฉันรู้ว่า sudo และโฟลเดอร์ไม่มีไฟล์ภายในโฟลเดอร์ย่อยเท่านั้น Artist Folder จากนั้น Folder Folder ไม่มี MP3 อยู่ข้างใน เพียงแค่โฟลเดอร์
tepheno

มันใช้งานได้ ...
Angelin Nadar

9

ฉันมีปัญหานี้กับโฟลเดอร์ในระบบไฟล์ btrfs การตรวจสอบจุดเชื่อมต่อและ lsof เป็นสิ่งปกติที่จะมองหา ในกรณีของฉันมันเป็นความเสียหายที่เกิดจากข้อผิดพลาดเก่าตั้งแต่แก้ไข:

สิ่งปกติที่ต้องตรวจสอบ:

  • lsof + D <path> - นี้จะลิตรฉันs T ทั้งหมดoปากกาไมล์ คุณไม่สามารถลบโฟลเดอร์ที่มีไฟล์ที่เปิดอยู่ แต่โดยปกติแล้วจะมีข้อผิดพลาดแตกต่างกันเล็กน้อย: "อุปกรณ์หรือทรัพยากรไม่ว่าง" โปรดทราบว่าหากคุณออกจาก "+ D <path>" lsof จะแสดงรายการสำหรับโฟลเดอร์ทั้งหมดในระบบไฟล์ทั้งหมด - ซึ่งจะเสียเวลา ;)
  • mount : นี่จะแสดงระบบไฟล์ที่เมาท์อยู่ในปัจจุบัน คุณไม่สามารถลบจุดเมานต์ที่เมาท์หรือโฟลเดอร์พาเรนต์
  • btrfs รายการย่อย <path> : คล้ายกับจุดติดคุณไม่สามารถลบ btrfs subvolume ยกเว้นโดยใช้คำสั่ง btrfs เฉพาะ: btrfs subvolume ลบ <path>

วิธีแก้ปัญหาการทุจริต

ในกรณีที่เกิดความเสียหายที่ไม่สามารถแก้ไขได้ง่ายวิธีแก้ปัญหาพื้นฐานคือการสำรองข้อมูลจัดรูปแบบระบบไฟล์แล้วเรียกคืน (ทิ้งข้อมูลที่ไม่ดี) ขึ้นอยู่กับจำนวนข้อมูลที่คุณมีในระบบไฟล์สิ่งนี้อาจเป็นงานที่น่าเบื่อ : - /

ในกรณีของฉันโฟลเดอร์ปัญหาอยู่ใน subvolume ดังนั้นฉันสามารถทำข้างต้น แต่โดยการลบเฉพาะ subvolume แทนที่จะเป็นระบบไฟล์ทั้งหมด ผมได้รับการสนับสนุนข้อมูลของฉันและลบ subvolume: btrfs ย่อยเด <subvolume เส้นทาง> จากนั้นฉันก็สามารถกู้คืนไปยังไดรฟ์ย่อยใหม่ได้โดยไม่ต้องออกจากโฟลเดอร์ปัญหา

ความเสียหายของ i_size

สาเหตุในกรณีของฉันพบว่าเป็นความเสียหายของi_sizeที่ไม่ใช่ศูนย์ Btrfs ใช้ i_size เพื่อบอกว่าโฟลเดอร์ว่างเปล่าหรือไม่ หากต้องการตรวจสอบสิ่งนี้ให้เรียกใช้:

stat -c %s <foldername>

i_size ของโฟลเดอร์ว่างใน btrfs ควรเป็นศูนย์ โดยทั่วไปแล้วมันคือ 4k

ลิ้งค์ที่มีความเกี่ยวข้อง:

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_cannot_delete_an_empty_directory


6

ลองลงในไดเรกทอรีแล้วลบไฟล์ทั้งหมดที่ใช้cd rm -rf *จากนั้นลองออกนอกไดเรกทอรีและใช้rmdirเพื่อลบไดเรกทอรี


มันใช้งานได้ดีสำหรับฉัน +1 คนขอบคุณ
AndrewL64

ฉันลองสิ่งนี้และได้รับข้อความแสดงข้อผิดพลาด: "รายการอาร์กิวเมนต์ยาวเกินไป"
Rafael_Espericueta

1

ลอง sudo rm -rf [Folder name]

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

ทำงานให้ฉันเมื่อฉันพยายามลบโครงการ Unity และใช้โดยฮับ unity เพียงแค่ปิดศูนย์กลางความสามัคคีและเขียนคำสั่งใหม่อีกครั้ง


0

ไปที่โฟลเดอร์ก่อนหน้าชื่อที่คุณต้องการลบและเรียกใช้คำสั่งนี้เพื่อเปลี่ยนชื่อโฟลเดอร์โดยใช้ชื่อโฟลเดอร์ของคุณ: rm -rf foldername

R หมายถึงแบบเรียกซ้ำและ f หมายถึงกำลัง


rm: cannot remove Wan Pisu - New World': Directory not empty
tepheno

คุณใช้-rf?
Ramon Suarez

-rfฉันคิดว่าฉันใช้rm -r -f -vคุณ
tepheno

ผมก็ไม่ได้ทดสอบกับชื่อไดเรกทอรีเดียวกันและการทำงานสำหรับฉันยังมีการใช้วิธีการของคุณแยก RF v. คุณแน่ใจว่าคุณกำลังใช้rmและไม่ได้rmdir? verbose (-v) ให้เบาะแสกับคุณหรือไม่? นอกจากนี้ยังมีไฟล์ 0 ไบต์ในไดเรกทอรีของคุณหรือไม่ "rm -r -f -v Wan \ Pisu \ - \ New \ World / ลบไดเรกทอรีที่ลบออก 'Wan Pisu - New World / test.test': 'Wan Pisu - โลกใหม่'"
Ramon Suarez

ไม่พวกเขาเป็นโฟลเดอร์เท่านั้น นอกจากนี้เมื่อฉันลบมันใน Windows ก็Error; 0x-----ไม่สามารถลบได้เช่นกัน -vกำลังอธิบายสิ่งที่กำลังทำอยู่ฉันรู้ว่าrm --help
tepheno


0

หากคุณไม่ได้ตั้งค่าการอนุญาตในการเขียนคุณจะไม่สามารถลบไดเรกทอรีได้

ในตัวอย่างร้องแม้ว่าฉันเป็นเจ้าของไดเรกทอรีฉันไม่สามารถลบมัน เมื่อฉันเพิ่มสิทธิ์การเขียนด้วยchmod- ทุกอย่างสำเร็จ

DIR:/xieerqi
skolodya@ubuntu:$ ls -dl TESTDIR/                                              
dr-xr-xr-x 2 xieerqi xieerqi 4096 Jan 24 16:06 TESTDIR//

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              
rm: cannot remove ‘TESTDIR/one & two’: Permission denied
rm: cannot remove ‘TESTDIR/tom&jerry’: Permission denied
rm: cannot remove ‘TESTDIR/jekyl&hide’: Permission denied
rm: cannot remove ‘TESTDIR/pdfReader.sh’: Permission denied

DIR:/xieerqi
skolodya@ubuntu:$ chmod +w TESTDIR/                                            

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              

DIR:/xieerqi
skolodya@ubuntu:$ echo $?
0

0

ฉันมีโฟลเดอร์ใน Windows ที่เชื่อมต่อกับเครื่องเสมือน Ubuntu VirtualBox (VM) ฉันไม่สามารถลบออกจากการจัดการไฟล์ Windows หรือจากภายใน VM ใช้หรือrmdirrm -Rf *

TLDR : ฉันก็สามารถที่จะเอาพวกเขาใน Git Bash (ใน Windows ของหลักสูตร) rm -Rf *โดยใช้

เมื่อฉันพยายามลบในตัวจัดการไฟล์ของ Windows มันบอกว่าฉันต้องการผู้ดูแลระบบระดับสูงเพื่อลบโฟลเดอร์ แต่ถึงแม้จะเป็นผู้ดูแลระบบก็ยังคงล้มเหลว

จากใน Ubuntu VM (ที่ฉันไม่เคยมีปัญหาในการลบไฟล์ที่แชร์มาก่อน) ฉันได้รับข้อผิดพลาดcannot remove protocol errorเช่นเดียวกับคนอื่น ๆ

ในที่สุดใน Git Bash ใน Windows ฉันสามารถลบโฟลเดอร์ได้ ฉันเดาว่า Git Bash มีการล็อคบางอย่างในโฟลเดอร์ ใน Git Bash ไดเรกทอรีทำงานของฉันเป็นหนึ่งในไดเรกทอรีที่ฉันพยายามลบ ฉันสำรองข้อมูลแล้วลบออกโดยใช้rm -Rfโดยไม่มีข้อผิดพลาด

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