Как использовать sudo для удаления содержимого каталога

У меня есть законная потребность в очистке каталога, к которому у моей учетной записи нет доступа (это каталог кеша, используемый приложением, и принадлежит учетной записи, которая запускает приложение.) У моей учетной записи есть полные права sudo (я думаю) , но я не могу понять, как удалить содержимое данного каталога. Моя учетная запись не может cd в каталог, только в родительский каталог.

 sudo rm directory/* 

дает ответ

 cannot remove `directory/*': no such file or directory 

Это похоже на проблему, которая должна иметь простой ответ, но я не могу ее найти.

Изменить: этот каталог определенно не пуст:

 sudo ls directory/ 

возвращает более 1000 имен файлов.

2 Solutions collect form web for “Как использовать sudo для удаления содержимого каталога”

У вас проблемы, потому что ваша оболочка пытается расширить * в список файлов, но это невозможно, поскольку у вас нет прав на чтение каталога.

Я могу думать о двух вещах, которые будут работать

 sudo bash -c "rm directory/*" 

В этом случае * не расшифровывается вами, а root, который может читать каталог

ИЛИ

 sudo find directory -type f -exec rm {} \; 

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

Изменить: в первом варианте я случайно записал каталог. * Вместо каталога / *

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

sudo rm /explicit/path/to/directory/* должен работать. Вы все равно получите эту ошибку, если в directory нет файлов; вы можете подавить это с помощью rm -f ( не rm -fr если вы абсолютно не уверены в том, что делаете).

  • RPM не удаляется с использованием sudo rpm -e
  • Как удаленно выполнить команду ssh команду sudo без пароля
  • Потеря (в реальном времени) разрешения при поступлении от корня к себе
  • sudo в неинтерактивном скрипте
  • debian не принимает административный пароль
  • Команда Bash Sudo не найдена
  • Как использовать SCSUDO для запуска скриптов с позиционными параметрами?
  • sudo разрешено, но su предоставляет разрешение
  • Добавить пользователя с правами администратора / администратора
  • sudo не может открыть / etc / sudoers
  • Как sudo прерывается в xterm на Ctrl-C?
  • Могу ли я перенести файл в папку (на удаленном сервере), доступную для записи только через root (через sudo)?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.