Не удалось удалить каталог

На моем хосте OS X у меня возникли проблемы с удалением каталога «foo».

mymac:.Trashes joe$ ls foo mymac:.Trashes joe$ ls foo/ Ảnh011.jpg Ảnh012.jpg Ảnh013.jpg mymac:.Trashes joe$ ls -l foo/ ls: Ảnh011.jpg: No such file or directory ls: Ảnh012.jpg: No such file or directory ls: Ảnh013.jpg: No such file or directory mymac:.Trashes joe$ rm -rf foo/ rm: foo/: Directory not empty mymac:.Trashes joe$ sudo rm -rf foo/ Password: rm: foo/: Directory not empty 

Как вы можете видеть, в каталоге «foo» есть несколько файлов, на которых я могу запускать только ls ; Запуск ls -l возвращает ошибку. Я не могу удалить отдельные файлы или каталог. Использование «Empty Recycle Bin» также не помогло. Я также попробовал «Дисковая утилита» -> «Проверить диск» и «Восстановить диск».

Изменить: по запросу, здесь больше информации

 mymac:.Trashes joe$ ls -del foo/ drwxrwxrwx 2 joe staff 16384 13 May 11:19 foo/ mymac:.Trashes joe$ ls -del foo drwxrwxrwx 2 joe staff 16384 13 May 11:19 foo mymac:.Trashes joe$ LC_ALL=C mymac:.Trashes joe$ ls -ABeli foo/ total 1812 18972612676 -rwxrwxrwx 1 joe staff 305951 13 May 11:19 Ảnh011.jpg 19123958587 -rwxrwxrwx 1 joe staff 309745 13 May 11:19 Ảnh012.jpg 18511775654 -rwxrwxrwx 1 joe staff 310907 13 May 11:19 Ảnh013.jpg mymac:.Trashes joe$ find foo/ foo/ foo//Ảnh011.jpg foo//Ảnh012.jpg foo//Ảnh013.jpg 

  • Невозможно запросить пользователя с помощью опции rm bultin prompt -i с помощью xargs и найти
  • Почему rm разрешено удалять файл под собственностью другого пользователя?
  • Как мне передать ls в grep и удалить файлы, отфильтрованные grep?
  • Как удалить все файлы в текущем каталоге за исключением последних двух
  • Удалите несколько последовательных имен файлов, но игнорируйте часть первого
  • Как удалить каталог с несколькими subvolums btrfs?
  • Поиск недостающих имен файлов между двумя каталогами в Linux
  • Сохранение последних двух версий и удаление оставшихся
  • 4 Solutions collect form web for “Не удалось удалить каталог”

    Похоже, что у вас есть имена в foo которые не ссылаются на действительный узел для файла. Я не уверен, как это может произойти или почему rm -rf не удалит запись из каталога, даже если это произойдет.

    Но, возможно, если вы свяжете запись в каталоге с допустимым файловым узлом, она удалит? Другими словами, может быть, это?

     touch foo/Ảnh011.jpg rm foo/Ảnh011.jpg 

    Хммм. Кто-нибудь еще считает, что // в приведенном ниже результате, ну, неожиданно?

     mymac:.Trashes joe$ find foo/ foo/ foo//Ảnh011.jpg foo//Ảnh012.jpg foo//Ảnh013.jpg 

    Я бы ожидал, что это будет показано ниже. Может ли // (что бы это ни было) было ключом к проблеме?

     foo/Ảnh011.jpg foo/Ảnh012.jpg foo/Ảnh013.jpg 

    Вы пробовали переименовать файлы в первую очередь? Файлы имеют специальный символ в начале «Ả». Попробуйте сначала переименовать файлы, а затем удалить их.

    Ответы выше хорошо, но есть еще одна вещь, которую вы должны знать.

    По умолчанию 'ls' (или 'ls -l') не показывает файлы, имена которых начинаются с символа '.' (так называемые «точечные файлы»)

    Чтобы убедиться, что вы видите все файлы, используйте 'ls -a'.

    Возможно, хотя и не уверен, что у вас есть другие файлы, начинающиеся с символа '.' в 'foo /', и поэтому он не пуст.

    Тем не менее, они должны были быть удалены с помощью '/ bin / rm -rf foo', поэтому в этом каталоге должна быть какая-то другая проблема.

    Попробуйте удалить файлы с помощью этой команды, а затем удалите папку.

     find . -iname '*.jpg' -exec rm {} \; 
    Linux и Unix - лучшая ОС в мире.