“Tidak dapat menghapus 'some_directory': Direktori tidak kosong”

27

Saya mencoba menghapus beberapa direktori, tetapi

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

Tetapi daftar isinya tidak menghasilkan apa-apa

$ ls DE.aspx_files
$

Ditambahkan: Sebenarnya

$ 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

Ketika saya mencoba rm .fuse_hidden0001d4bf00000006, itu dihapus, tetapi yang baru .fuse_hidden0001d4bf00000007dibuat.

Jadi saya bertanya-tanya apa yang terjadi, dan bagaimana cara memperbaiki masalah ini?

Catatan: ini adalah HDD portabel eksternal yang baru dibeli, dan saya hanya menyalin beberapa file ke dalamnya menggunakan program pemulihan data.

OS: Ubuntu 12.04

Terima kasih!

Tim
sumber
3
Anda perlu mencari tahu apa yang sedang memasang sistem file FUSE di sana. Cobalah mount | fgrep fuseuntuk menemukannya, dan fusermount -u <mountpoint>lepaskan kaitannya sebelum mencoba menghapus direktori Anda.
CodeGnome
Bagaimana Anda menghapus file tanpa pemasangan?
Stephen Boston

Jawaban:

16

File Tersembunyi

Anda mungkin memiliki file tersembunyi. Anda dapat menemukannya dengan ls -lamemastikan Anda baik-baik saja dengan benar-benar menghapusnya terlebih dahulu. Kemudian Anda dapat menghapus file sebelum menjalankan rm -ratau rmdirsesuai kebutuhan.

Memaksa Hapus Rekursif

Anda juga bisa melakukannya rm -rfuntuk memaksa penghapusan rekursif bahkan jika direktori target berisi file. Semua peringatan yang biasa berlaku, tetapi itu akan menyelesaikan pekerjaan terlepas dari apa isi direktori Anda - selama Anda memiliki izin untuk menghapus file dan direktori, tentu saja.

CodeGnome
sumber
1
juga, Anda dapat menjalankan find DE.aspx_files -exec ls -la {} \;untuk mengidentifikasi file tersembunyi, atau file yang dinamai dengan karakter khusus.
Tim Kennedy
Terima kasih, saya telah mengidentifikasi file tersembunyi pelakunya, yang dapat dihapus tetapi saudara baru dihasilkan. Silakan lihat bagian saya yang ditambahkan. Penghapusan paksa juga tidak berfungsi, karena "Direktori tidak kosong".
Tim
57

File formulir .fuse_hidden*dibuat oleh sistem file FUSE ketika file dihapus tetapi masih digunakan di suatu tempat dan masih harus memiliki entri direktori. Ini mirip dengan .nfs*file pada direktori yang diekspor melalui NFS .

Jalankan df -T .untuk melihat jenis sistem file yang dipasang pada direktori saat ini dan titik mount-nya. Untuk hard disk eksternal, kemungkinan ini adalah sistem file NTFS yang dipasang melalui driver NTFS-3G , yang berbasiskan pada FUSE.

Nama adalah nama palsu yang diciptakan oleh driver sistem file untuk file yang dihapus. Anda tidak dapat menghapus file (atau lebih tepatnya, jika Anda membuat file, itu muncul kembali dengan nama lain). Anda juga tidak dapat menghapus direktori, karena itu tidak kosong. Anda harus menemukan apa yang menggunakan file ini. Penyebab paling mungkin sedang digunakan adalah jika itu dibuka oleh beberapa aplikasi. Jalankan di lsof /media/mount-pointmana /media/mount-pointtitik mount sistem file dan cari file yang terbuka di direktori itu.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
6
Jawaban ini adalah yang benar-benar menyelesaikan masalah
Martin Erhardt
Terima kasih, ini berhasil. Saya menggunakan jawaban ini dan melihat banyak hal yang menggunakan folder saya. Reboot, lalu mencoba melihat daftar yang sama lagi - kosong. Dan kemudian penghapusan berjalan dengan lancar.
Sevastyan
12

Untuk hard disk eksternal masalah ini dapat diatasi dengan,

  • Klik kanan pada folder dan pilih Move to Trash
  • Kosongkansampahnya

Itu bekerja untuk saya bahkan jika rm -rftidak berhasil.

DileepNimantha
sumber
1
Ya ini berhasil. Mengapa?! Namun file-file tersebut kemudian di tempat sampah dan sama bermasalahnya.
Stephen Boston
-1

Jika di mac, perhatikan juga file * .localized, yang mungkin tidak terlihat bahkan oleh 'ls -la', 'find' dan sejenisnya pada sistem file FUSE. [Ini ditemukan menggunakan sistem file FUSE yang dibuat oleh Connected Transporter pada MacBook Pro.]

Dave
sumber
-1

Ini bisa terjadi ketika Anda menambal file di klien torrent juga. Pastikan Anda mematikan klien torrent, atau menghapus torrent seeding.

Daniel Reid
sumber