Сценарий оболочки OSX — удаление всех файлов рабочего стола

#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 , если на рабочем столе есть какие-либо каталоги / пакеты.