Почему я не могу удалить папку?


14
Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

Я попытался удалить эти папки из терминала с помощью:

rm -r

2
Если эта ошибка выводится из nautilus, вы можете добавить скриншот к вашему вопросу. Кроме того, что является выходом rm -rиз терминала? Вы пробовали с ответами на этот пост ?
Лусио

1
используйте rm -rfвместо этого
nickanor

Я был использован rm -Rfдля удаления рекурсивных каталогов, может быть, эта работа для вас. Прописная буква R означает Рекурсивный, см. man rm
Справочные

1
У вас есть разрешение на удаление этого каталога? Пожалуйста, выполните ls -laи вставьте его здесь, чтобы отменить эту опцию.
revnoise

Папка была, я думаю, сначала удалена на Windows, а затем пыталась удалить на Ubuntu. Затем попытался удалить в Windows, но сказал ошибку. Directory not empty но это все пустое обещание. На окнах это говорит об ошибкеError x00000
tepheno

Ответы:


10

Ты пробовал sudo rm -r. Какие файлы там? Вы также можете сначала удалить все файлы, а затем удалить папку. Это дополнительная работа, но иногда она того стоит.

sudo для действий суперпользователя.


Я знаю, что sudo и папка не имеет файлов внутри только подпапки. Папка исполнителя, а затем папка альбома, внутри MP3 нет. Просто папка.
Tepheno

это работает чувак ...
красавица Надар

9

У меня была эта проблема с папкой в ​​файловой системе btrfs. Проверка точек монтирования и lsof - это обычные вещи, которые нужно искать. В моем случае это было повреждение, вызванное старой ошибкой, так как исправлено:

Нормальные вещи для проверки:

  • Lsof + D <путь> - Это будет л я ев т всех ö пера ф Ильз. Вы не можете удалить папку, содержащую открытые файлы, хотя обычно это приводит к несколько иной ошибке: «Устройство или ресурс занят». Обратите внимание, что если вы пропустите «+ D <путь>», lsof покажет список всех папок во всех файловых системах, что приведет к потере времени. ;)
  • mount : Это покажет вам в настоящее время смонтированные файловые системы. Вы не можете удалить активно смонтированную точку монтирования или ее родительские папки.
  • Подсписок btrfs <путь> : Подобно точке монтирования, вы не можете удалить подобъем btrfs, кроме как с помощью команды btrfs: btrfs subvolume delete <путь> .

Коррупция Обходной путь

В случае повреждения, когда это не может быть легко исправлено, основным обходным решением является резервное копирование, форматирование файловой системы, а затем восстановление (исключая неверные данные). В зависимости от того, сколько данных у вас в файловой системе, это может быть рутиной. : - /

В моем случае проблемная папка была внутри подобъема, так что я смог сделать вышеописанное, но удалив только подобъем вместо всей файловой системы. Я сделал резервную копию своих данных и удалил подобъем: btrfs sub del <subvolume-path> . Затем я смог восстановить в новый том, оставив проблемную папку.

Коррупция i_size

Причиной в моем случае было обнаружено повреждение i_size , где он был ненулевым. Btrfs использует i_size, чтобы указать, пуста ли папка. Чтобы проверить это, запустите:

stat -c %s <foldername>

I_size пустой папки в btrfs должен быть нулевым. В ext это обычно 4к.

Ссылки по теме:

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 Hub. просто закрыл хаб единства и переписал команду, работал нормально.


0

Перейдите в папку прямо перед папкой, которую вы хотите удалить, и выполните эту команду, изменив имя папки на имя вашей папки: rm -rf foldername

R означает рекурсивный, а f означает силу.


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

Вы использовали -rf?
Рамон Суарес

-rfЯ думаю, что использовал rm -r -f -vсэр.
Tepheno

Я только что провел тест с тем же именем каталога, и он сработал для меня, также используя ваш способ разделения rf v. Вы уверены, что используете rmи нет rmdir? Дало ли вам подробное объяснение (-v)? Кроме того, есть ли 0-байтовые файлы в вашем каталоге? "rm -r -f -v Wan \ Pisu \ - \ New \ World / удален 'Wan Pisu - New World / test.test' удален каталог: 'Wan Pisu - Новый мир'"
Рамон Суарес

нет, это только папки. Кроме того, когда я Error; 0x-----удаляю его в Windows, он также не может быть удален. -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 или изнутри виртуальной машины с помощью rmdirили rm -Rf *.

TLDR : я наконец смог удалить их в Git Bash (в Windows, конечно), используя rm -Rf *.

Когда я попытался удалить в файловом менеджере Windows, он сказал, что мне нужны привилегии администратора для удаления папок. Но даже будучи Админом, все равно не получилось.

Изнутри Ubuntu VM (где у меня никогда не было проблем с удалением общих файлов) я получил сообщение об ошибке cannot remove protocol error, а также некоторые другие.

Наконец, в Git Bash в Windows я смог удалить папки. Я предполагаю, что у Git Bash была какая-то блокировка папок. В Git Bash мой рабочий каталог был одним из тех, которые я пытался удалить. Я отступил от этого и затем удалил это использование rm -Rfбез любой ошибки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.