Bir klasörü neden silemiyorum?


14
Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

Bu klasörleri terminalden silmeye çalıştım:

rm -r

2
Bu hata çıktısı nautilus'tan geliyorsa, sorunuza ekran görüntüsü ekleyebilirsiniz. Ayrıca, rm -rterminalden çıkışı nedir? Eğer cevapları ile denediniz Bu yazı ?
Lucio

1
kullanmak rm -rfyerine
nickanor

rm -RfYinelenen dizinleri kaldırmak için kullanıldım , bu iş sizin için olabilir. Büyük R, Özyinelemeli anlamına gelir, bkz. Sayfalarman rm
Mart'ta

1
Bu dizini kaldırma izniniz var mı? ls -laBu seçeneği atmak için lütfen yürütün ve buraya yapıştırın.
Mart'ta

Klasör ilk önce Windows üzerinde silindi ve daha sonra Ubuntu üzerinde silmeye çalıştı düşünüyorum. Sonra Windows üzerinde silmeye çalıştı ama hata dedi. Directory not empty ama tamamen boş vaat ediyor. Pencerelerde hata diyorError x00000
tepheno

Yanıtlar:


10

Denedin mi sudo rm -r. Ne tür dosyalar var? Ayrıca önce tüm dosyaları, ardından klasörü silebilirsiniz. Ekstra bir iştir, ancak bazen işi halletmeye değer.

sudo süper kullanıcı eylemleri içindir.


Sudo biliyorum ve klasör sadece bir alt klasör içinde dosya yok. Sanatçı Klasörü sonra Albüm Klasörü içinde MP3 yok. Sadece klasör.
Mart'ta Tepheno

dostum çalışıyor ...
Angelin Nadar

9

Ben btrfs dosya sistemindeki bir klasör ile bu sorunu vardı. Montaj noktalarının ve lsof'un kontrol edilmesi normal şeylerdir. Benim durumumda, eski bir hatanın yol açtığı yolsuzluktu, çünkü düzeltildi:

Kontrol edilecek normal şeyler:

  • lsof + D <yol> - Bu olacak l ı s tüm T O kalem f iles. Açık dosyaları içeren bir klasörü silemezsiniz, ancak bu normalde biraz farklı bir hata verir: "Aygıt veya kaynak meşgul". "+ D <yol>" 'un dışında kalırsanız, lsof'un tüm dosya sistemlerindeki tüm klasörler için bir liste göstereceğini ve bu da zaman kaybına neden olacağını unutmayın. ;)
  • mount : Bu size şu anda bağlı olan dosya sistemlerini gösterir. Aktif olarak monte edilmiş bir bağlama noktasını veya üst klasörlerini silemezsiniz.
  • btrfs alt listesi <yol> : Bir bağlama noktasına benzer şekilde, btrfs'e özgü komutu kullanmadan btrfs alt birimini silemezsiniz : btrfs subvolume delete <yol> .

Yolsuzluk Geçici Çözümü

Kolayca düzeltilemediği bir bozulma durumunda, temel geçici çözüm yedekleme, dosya sistemini biçimlendirme ve ardından geri yükleme (kötü verileri dışarıda bırakma) şeklindedir. Dosya sisteminde ne kadar verinin bulunduğuna bağlı olarak, bu bir angarya olabilir. : - /

Benim durumumda sorun klasörü bir alt hacim içinde olduğunu, bu yüzden yukarıdakileri yapabildim ama tüm dosya sistemi yerine sadece alt birimi silerek. Verilerimi yedekledim ve alt hacimi sildim: btrfs sub del <subvolume-path> . Sonra sorun klasörü dışarı bırakarak, yeni bir alt hacme geri yükleyebilirsiniz.

İ_size bozulması

Benim durumumdaki nedeni, sıfır olmayan i_size'nin bozulması olarak bulundu . Btrfs, klasörün boş olup olmadığını söylemek için i_size öğesini kullanır. Bunu kontrol etmek için şunu çalıştırın:

stat -c %s <foldername>

Btrfs'deki boş bir klasörün i_size değeri sıfır olmalıdır. Dahili olarak genellikle 4k'dir.

İlgili Bağlantılar:

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


6

cdDizini deneyin ve ardından tüm dosyaları kaldırın rm -rf *. Ardından dizinden çıkmayı deneyin ve dizini rmdirsilmek için kullanın .


Bu benim için güzel çalışıyor +1 Teşekkürler adam
AndrewL64

Bunu denedim ve hata mesajını aldım: "Bağımsız değişken listesi çok uzun"
Rafael_Espericueta

1

Deneyin sudo rm -rf [Folder name]

Hala Dizin boş görünmüyorsa, bu dizinin kullanıldığı anlamına gelir. kapatmayı deneyin veya hangi programı kullandığını kontrol edin, ardından komutu yeniden kullanın.

Unity projesini silmeye çalışırken benim için çalıştım ve birlik merkezi tarafından kullanıldı. sadece birlik hub kapalı ve komut iyi çalıştı yeniden yazdı.


0

Silmek istediğiniz klasörden hemen önceki klasöre gidin ve bu komutu yürüterek foldername klasörünüzün adına göre değiştirin: rm -rf foldername

R, özyinelemeli ve f, kuvvet anlamına gelir.


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

Kullandın -rf
Ramon Suarez

-rfSanırım rm -r -f -vefendim kullandım .
tepheno

Ben sadece aynı dizin adıyla bir test yaptım ve benim için çalıştı, ayrıca rf v ayırma yolunuzu kullanarak. Kullandığınızdan emin rmdeğil rmdirmisiniz? Ayrıntılı (-v) size ipucu verdi mi? Ayrıca, dizininizde 0 baytlık dosyalar var mı? "rm -r -f -v Wan \ Pisu \ - \ Yeni \ Dünya / kaldırıldı 'Wan Pisu - Yeni Dünya / test.test' dizini kaldırıldı: 'Wan Pisu - Yeni Dünya'"
Ramon Suarez

hayır, sadece klasörlerdir. Ayrıca Windows'ta Error; 0x-----sildiğimde de silinemez. -vne yapıldığını açıklıyorrm --help
tepheno

0

Deneyin: rmdir --ignore-fail-on-non-empty *directory*


bu hiçbir şey yapmaz.
00'de

0

Ayarlanmış yazma izinleriniz yoksa, dizini kaldıramazsınız.

Örneğin feryat, dizinin sahibi olmama rağmen onu kaldıramıyorum. Bir kez yazma izinleri eklediğimde chmod- her şey başarılı.

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'ta bir Ubuntu VirtualBox sanal makinesine (VM) bağlı klasörlerim var. Bunları Windows dosya yöneticisinden veya VM'nin içinden rmdirveyarm -Rf * .

TLDR : Son olarak bunları kullanarak Git Bash'te (elbette Windows'ta) kaldırabildim rm -Rf *.

Windows dosya yöneticisinde silmeye çalıştığımda, klasörleri silmek için Yönetici ayrıcalıklarına ihtiyacım olduğunu söyledi. Ancak, Yönetici olarak bile, yine de başarısız oldu.

Ubuntu VM içinden (daha önce paylaşılan dosyaları kaldırmada hiç sorun yaşamadım), hatayı cannot remove protocol errorve bazılarını aldım .

Son olarak, Windows'ta Git Bash'de klasörleri silebilirdim. Git Bash'in klasörlerde bir çeşit kilidi olduğunu tahmin ediyorum. Git Bash'te çalışma dizinim silmeye çalıştığım dizinlerden biriydi. Ben geri ve sonra rm -Rfherhangi bir hata olmadan kullanarak sildi .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.