#macos #shell
#macos #оболочка
Вопрос:
Я пытаюсь удалить все файлы на рабочем столе отдельных пользователей из своей учетной записи администратора с помощью сценария оболочки.
Это мой код для удаления (для студентов)
sudo rm /Users/student/Desktop/*
но я получаю сообщение об ошибке:
rm: /Users/student/Desktop/*: No such file or directory
Когда я запускаю скрипт, он запрашивает у меня доступ администратора, а затем выдает ошибку.
Подходит ли использование Desktop / *? какие-нибудь советы? Спасибо
Ответ №1:
Расширение пути выполняется перед sudo
выполнением. Это означает, что это делается с правами доступа текущего пользователя, и если вы не можете получить доступ /Users/student/Desktop
, то расширение завершается неудачей. Вместо этого сделайте это:
sudo bash -c "rm /Users/student/Desktop/*"
Таким образом, расширение пути выполняется с повышенными правами, предоставленными sudo
. Возможно, вам потребуется сделать rm -r
, если на рабочем столе есть какие-либо каталоги / пакеты.