Bash копия файла в домашнем каталоге пользователя MacOS

Я довольно новый (совершенно новый) в написании Shell. Я использую его время от времени для выполнения конкретной задачи, когда моих инструментов PKG недостаточно.

У меня есть папка с названием licenses, расположенная в /Library/Application\ Support/, и я хочу скопировать ее в библиотеку пользователя. К счастью, каждый пользователь назван по определенному числовому шаблону, мой homedir - t25542.

Итак, вот мой маленький сценарий:

#get the homedir name
USER=`stat -f  '%Su' /Users/t*/

#copy files
ditto /Library/Application\ Support/licences/ /Users/$USER/Library/Application\ Support/licences/

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

1 ответ

Это должно дать вам представление о том, как вы можете это сделать:

sudo bash -c 'for u in /Users/*/ ; do SRC="/Library/Application Support/licence"; DST="$u/Library/Application Support"; echo cp "$SRC" "$DST"; echo chmod something "$DST/licence" ; done'

Пример вывода

cp /Library/Application Support/licence /Users/Shared//Library/Application Support
chmod something /Users/Shared//Library/Application Support/licence
cp /Library/Application Support/licence /Users/fred//Library/Application Support
chmod something /Users/fred//Library/Application Support/licence
cp /Library/Application Support/licence /Users/mark//Library/Application Support
chmod something /Users/mark//Library/Application Support/licence

Сначала сделайте резервную копию!

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

Другие вопросы по тегам