Я обычно использую кавычки, например. echo "$WEBSITE.sql"
.
Таким образом, Вы могли записать это как:
#!/bin/sh
WEBSITE="danydiop"
/usr/bin/mysqldump --opt -u root --ppassword $WEBSITE > "$WEBSITE.sql"
Во-первых, всегда проверяйте что версии find
/xargs
Вы на самом деле используете на своем поле Mac-OSX. Возможно, Вы ожидаете поведение/опции BSD/GNU и используете версии GNU/BSD.
Не знайте если открытые поддержки несколько аргументов. Если не звонят xargs
как это:
xargs -n 1 open
(что означает, что xargs выполняет для каждого аргумента дополнительный открытый процесс),
И имейте в виду это find | xargs
без -print0/-0
как ожидают, перестанет работать, если Ваши имена файлов/пути будут содержать пробелы.
Ага, если Вы используете что-то как
find -print0 | grep something | xargs -0 foo
затем grep
перепутан весь \0
персонажи.
GNU grep
(по крайней мере), знает -z
опция. Таким образом, который должен работать:
find -print0 | grep -z something | xargs -0 foo
Проверьте что grep
версия Вы используете через
grep --version
Или проверьте страницу справочника Вашего grep
для \0
(обнулите символ), поддержка.
Это должно работать:
find . -name cover\.pdf -exec open '{}' \;
Можно протестировать как это:
find . -name cover\.pdf -exec ls -l '{}' \;
Не уверенный, на что страница справочника похожа на OSX, но существуют различные примеры в странице справочника находки при поиске ПРИМЕРОВ. Я часто обновляю мозг путем проверки их.
Если Ваш xargs в Вашей системе поддерживает-n опцию, можно попробовать следующее.
find . | grep cover\.pdf | xargs -n 1 open
-print0
дает мне выводbinary file matches
в grep. – Josh K 25.08.2010, 20:37