“'Some_directory' öğesini kaldıramıyor: Dizin boş değil”


27

Bir dizini silmeye çalıştım ama

$ rm DE.aspx_files -r
rm: cannot remove `DE.aspx_files': Directory not empty

Ancak içeriğini listelemek hiçbiri döndürmez

$ ls DE.aspx_files
$

Eklendi: Aslında

$ ls -la DE.aspx_files

total 4
drwx------ 1 ting ting 4096 Sep 14 20:48 .
drwx------ 1 ting ting    0 Sep 13 22:34 ..
-rw------- 1 ting ting    0 Sep 13 22:34 .fuse_hidden0001d4bf00000006

Denedim rm .fuse_hidden0001d4bf00000006, silindi, ancak başka bir yeni .fuse_hidden0001d4bf00000007oluşturuldu.

Peki ne oldu ve bu sorunu nasıl çözebilirim acaba?

Not: Yeni satın alınan harici bir HDD'dir ve veri kurtarma programı kullanarak bazı dosyaları kopyalarım.

İşletim Sistemi: Ubuntu 12.04

Teşekkürler!


3
Orada bir FUSE dosya sistemini neyin monte ettiğini bulmanız gerekiyor. Deneyin mount | fgrep fusebulmak için, ve fusermount -u <mountpoint>Dizininizin silmeye çalışırken önce bağlantısını kesmeniz.
CodeGnome

Dosyayı montaj yapmadan nasıl silersiniz?
Stephen Boston

Yanıtlar:


16

Gizlenmiş dosyalar

Gizli dosyalarınız olabilir. ls -laİlk önce onları gerçekten silmenin iyi olduğundan emin olmak için onları bulabilirsin . Ardından, çalıştırmadan önce rm -rveya rmdirgerektiği şekilde dosyaları silebilirsiniz .

Özyinelemeli Silme zorlamak

rm -rfHedef dizin dosyalar içeriyor olsa bile özyinelemeli silme işlemini zorlamak için de yapabilirsiniz . Tüm olağan uyarılar geçerlidir, ancak dizini ne içeriyorsa yapın, elbette dosyaları ve dizinleri silme izniniz olduğu sürece işi halledecektir.


1
Ayrıca, find DE.aspx_files -exec ls -la {} \;gizli dosyaları veya özel karakterlerle adlandırılmış dosyaları tanımlamak için de çalıştırabilirsiniz .
Tim Kennedy,

Teşekkürler, suçluyu silebilecek gizli dosyayı tanımladım, ancak yeni bir kardeş oluşturuldu. Lütfen eklenmiş bölümüme bakın. Silme zorlaması da çalışmaz, çünkü "Dizin boş değil".
Tim

56

Formun dosyaları, bir dosya silindiğinde ancak hala bir yerlerde kullanıldığında ve bir dizin girdisi olması gerektiğinde FUSE dosya sistemleri .fuse_hidden*tarafından oluşturulur . Bu, NFS üzerinden verilen dizinlerdeki dosyalara benzer ..nfs*

df -T .Geçerli dizine monte edilmiş dosya sistemi türünü ve bağlama noktasını görmek için çalıştırın . Harici bir sabit disk için , bunun FUSE'ye dayanan NTFS-3G sürücüsü aracılığıyla monte edilmiş bir NTFS dosya sistemi olma ihtimali vardır .

Ad, dosya sistemi sürücüsünün silinmiş bir dosya için icat ettiği sahte bir addır. Dosyayı silemezsiniz (veya dosyayı oluşturursanız, başka bir adla yeniden görüntülenir). Dizini de silemezsiniz, çünkü boş değil. Bu dosyayı neyin kullandığını bulmanız gerekecek. Kullanımda olmanın en olası nedeni, bir uygulama tarafından açık olması. Dosya sistemi bağlama noktasının lsof /media/mount-pointolduğu /media/mount-pointyeri çalıştırın ve bu dizinde açık bir dosya arayın.


6
BU cevap, sorunu gerçekten çözen cevaptır
Martin Erhardt,

Teşekkürler, işe yarıyor. Bu cevabı kullandım ve klasörlerimi kullanan bir sürü şey gördüm. Yeniden başlatıldı, ardından aynı listeyi tekrar görmeye çalıştı - boş. Ve sonra silme sorunsuz gitti.
Sevastyan

12

Harici sabit diskler için bu problem şu şekilde çözülebilir:

  • Klasöre sağ tıklayın ve seçin Move to Trash
  • Boş çöp

İşe yaramadı bile benim için çalıştı rm -rf.


1
Evet bu işe yarıyor. Niye ya?! Ancak dosyalar daha sonra çöpe atılır ve sorun yaratır.
Stephen Boston

-1

Eğer mac'ta, 'ls -la', 'find' ve bunların bir FUSE dosya sisteminde bile görünmez hale gelebilecek * .localized dosyalarının farkında olun. [Bu, MacBook Pro'da bir ConnectedData Transporter tarafından oluşturulan FUSE dosya sistemi kullanılarak keşfedildi.]


-1

Bu, torrent istemcisinde bir dosya gördüğünüzde de olabilir. Torrent istemcisini kapattığınızdan veya tohumluk torrentini kaldırdığınızdan emin olun.

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.