Простой Mac Bash Script (Найти / Заменить) - PullRequest
1 голос
/ 21 октября 2010

Во-первых, любая поддержка и помощь по этому вопросу в значительной степени приветствуются.

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

По сути, мне нужно написать сценарий для замены файла настроек Safari, вот что у меня есть ... и что не работает в этом отношении:

#!/bin/bash
find /Files/ -iname "com.apple.Safari.plist" - print0 | xargs -I{} -0 -1 cp file /Users/{}/Library/Preferences

Выдает ошибку со следующим:

find: -: unknown option
xargs: illegal option -- 1

Любые мысли, идеи, с благодарностью.

Спасибо,

Ответы [ 2 ]

1 голос
/ 21 октября 2010

Я не мог понять, что именно вы хотите сделать с этим.Как я понимаю, у вас будет этот "com.apple.Safari.plist" в / Files /, это правильно?

И затем вы захотите поместить этот файл в какое-то место, которое, я полагаю, перезаписывает Safariтекущий файл plist.Предполагая, что вы берете правильный совет ghostdog74 и удаляете пробел между - print0, превращая его в -print0, а затем удаляете -1 из xargs, поскольку он не существует, вот что произойдет:

find найдет ваш файл в / Files /, а xargs запустит это: cp file /Users/com.apple.Safari.plist/Library/Preferences;Затем он умрет, поскольку не найдет файл с именем «file» или каталог с именем «/Users/com.apple.Safari.plist/".

Скорее всего, это не то, что вам нужно.:)

Если вы просто хотите скопировать файл куда-нибудь, почему бы вам просто не сделать cp /Files/com.apple.Safari.plist ~/Library/Preferences/?

Вам действительно нужны find и xargs в этом случае?Не могли бы вы уточнить?

0 голосов
/ 21 октября 2010

Нет пробела между - print0.а поскольку -1 не вариант, удалите его и посмотрите.

find /Files/ -iname "com.apple.Safari.plist" -print0 | xargs -I{} -0 cp file /Users/{}/Library/Preferences
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...