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

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

 sudo rm directory/* 

дает ответ

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

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

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

 sudo ls directory/ 

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

  • В команде `sudo find`, как я могу убедиться, что команда` -exec` запускается как обычный пользователь?
  • используйте net instread cdrom. linux, установка aptitude
  • сбросить разрешения системного файла, владельцев и групп
  • Запуск Deamon с участием GPIO на Pi
  • Почему в папку рабочего стола не загружается «sudo bash && cd desktop»?
  • Выполнять браузер как root
  • Разрешение Sudo yum запрещено Fedora 17
  • Выключение или перезагрузка как обычно
  • 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 если вы абсолютно не уверены в том, что делаете).

    Interesting Posts

    lsblk показывает несуществующие разделы md после перезагрузки

    Как искать и заменять несколько строк в KDE Kate?

    Отформатируйте вывод cputime для ps

    Упаковка только определенного подмножества встроенных файлов

    Если PATH содержит $ HOME / mydir и добавляет его, если нет (все в скрипте)

    Перенос репозитория APT из плоского в обычный формат прозрачно для конечного пользователя

    Как разбить строку на какой-то разделитель непечатаемого символа?

    Случайный код ошибки rsync 12 «Сброс соединения с помощью peer (104)» из задачи cron, которая запускается каждые 20 минут

    Подключиться к конкретному хосту

    Почему копируемый исполняемый файл rm не будет работать на другой Linux-машине?

    PuTTY может получить доступ к последовательному порту как / dev / ttyUSB0, но не как именованное устройство udev

    Использование процессора увеличивается с установленной 4 ГБ оперативной памяти

    Невозможно загрузить или закрыть Fedora 25 с последними ядрами, это вопрос о нуворише

    Cyborg RAT-мышь с xserver

    Как научить zsh, если не сделать autocorrect?

    Linux и Unix - лучшая ОС в мире.