"Неможливо видалити" some_directory ": Каталог не порожній"


27

Я намагався видалити деякий каталог, але

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

Але перелік його вмісту не повертає жодного

$ ls DE.aspx_files
$

Додано: Насправді

$ 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

Коли я намагаюся rm .fuse_hidden0001d4bf00000006, це видаляється, але .fuse_hidden0001d4bf00000007створено ще одне нове .

Тож мені цікаво, що сталося, і як виправити цю проблему?

Примітка: це нещодавно придбаний зовнішній портативний жорсткий диск, і я просто копіюю на нього деякі файли за допомогою програми відновлення даних.

ОС: Ubuntu 12.04

Спасибі!


3
Вам потрібно розібратися, на чому монтується файлова система FUSE. Спробуйте mount | fgrep fuseзнайти його та fusermount -u <mountpoint>відключити його, перш ніж спробувати видалити каталог.
CodeGnome

Як видалити файл без монтажу?
Стівен Бостон

Відповіді:


16

Приховані файли

У вас можуть бути приховані файли. Ви можете їх знайти, ls -laщоб переконатися, що ви добре все-таки видалити їх першими. Потім ви можете видалити файли перед запуском rm -rабо rmdirза потреби.

Примушування рекурсивного видалення

Ви також можете зробити це rm -rfдля примусового рекурсивного видалення, навіть якщо цільовий каталог містить файли. Усі звичні попередження застосовуються, але це дозволить виконати роботу незалежно від того, що міститься у вашому каталозі - якщо, звичайно, у вас є дозволи на видалення файлів та каталогів.


1
також можна запустити find DE.aspx_files -exec ls -la {} \;для виявлення прихованих файлів або файлів, названих спеціальними символами.
Тім Кеннеді

Дякую, я виявив прихованого файла винуватця, який можна видалити, але генерується новий брат. Будь ласка, дивіться мою додану частину. Примусове видалення також не працює, оскільки "Каталог не порожній".
Тім

57

Файли форми .fuse_hidden*створюються файловими системами FUSE, коли файл видалений, але все ще використовується десь і все одно повинен мати запис каталогу. Це схоже на .nfs*файли в каталогах, експортованих через NFS .

Запустіть, df -T .щоб побачити тип файлової системи, встановленої в поточному каталозі, та її точку монтування. Для зовнішнього жорсткого диска ймовірно, що це файлова система NTFS, встановлена ​​через драйвер NTFS-3G , який базується на FUSE.

Ім'я - це підроблене ім'я, яке драйвер файлової системи вигадує для видаленого файлу. Ви не можете видалити файл (а точніше, якщо створити файл, він знову з’явиться під іншим іменем). Ви також не можете видалити каталог, оскільки він не порожній. Вам потрібно буде знайти, що використовує цей файл. Найбільш ймовірною причиною використання є, якщо вона відкрита якоюсь програмою. Запустіть, lsof /media/mount-pointде /media/mount-pointзнаходиться точка монтування файлової системи, і знайдіть відкритий файл у цьому каталозі.


6
ЦЕ відповідь - це те, що фактично вирішує проблему
Мартін Ерхардт

Дякую, це працює. Я використав цю відповідь і побачив купу матеріалів, які використовували мої папки. Перезавантажився, потім знову спробував переглянути той самий список - він був порожнім. А потім видалення пройшло гладко.
Севастьян

12

Для зовнішніх жорстких дисків цю проблему можна вирішити,

  • Клацніть правою кнопкою миші на папці та виберіть Move to Trash
  • Очистіть кошик

Це працювало на мене, навіть якщо rm -rfне працювало.


1
Так, це працює. Чому ?! Однак файли знаходяться в смітнику і настільки ж проблематичні.
Стівен Бостон

-1

Якщо на mac, пам’ятайте також про * .localized файли, які можуть стати невидимими навіть для 'ls -la', 'find' та їхніх ілків у файловій системі FUSE. [Це виявлено за допомогою файлової системи FUSE, створеної ConnectedData Transporter, на MacBook Pro.]


-1

Це може статися, коли ви також завантажуєте файл у клієнт-торент. Просто переконайтесь, що ви вимкнули клієнт-торент або видалили поточний потік.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.