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

Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

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

rm -r
14
задан 15 March 2013 в 19:51

8 ответов

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

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

0
ответ дан 15 March 2013 в 19:51

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

Нормальные вещи проверить на:

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

Обходное решение повреждения

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

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

Повреждение i_size

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

stat -c %s <foldername>

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

Связанные ссылки:

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

9
ответ дан 15 March 2013 в 19:51

Попробуйте: rmdir --ignore-fail-on-non-empty *directory*

0
ответ дан 15 March 2013 в 19:51

Попробуйте cd в каталог, затем удалите все файлы, используя rm -rf *. Затем попробуйте выйти из каталога и использовать rmdir, чтобы удалить каталог.

0
ответ дан 15 March 2013 в 19:51

Если у вас не установлены права на запись, вы не можете удалить каталог.

В приведенном ниже примере, хотя я и являюсь владельцем каталога, я не могу удалить его. Как только я добавляю права на запись с 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
ответ дан 15 March 2013 в 19:51

У меня есть папки в 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 безо всякой ошибки.

0
ответ дан 15 March 2013 в 19:51

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

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

0
ответ дан 15 March 2013 в 19:51

Попробуйте sudo rm -rf [Folder name]

, Если это все еще отображающийся Каталог, не пустой, это является средним, что каталог используется. попытайтесь закрыть его или проверка, какая программа использует его затем использование ре команда.

Работавший для меня, когда я пытался удалить проект Единицы и он использовался концентратором единицы. просто закрытая единица концентрирует и переписала хорошо работавшую команду.

0
ответ дан 14 October 2019 в 17:23

Другие вопросы по тегам:

Похожие вопросы: