Приложения KDE записаны с помощью QT, таким образом, необходимо использовать спокойный инструмент конфигурирования (пакет qt4-qtconfig в Debian/Ubuntu)
Стандарт POSIX для находки управляет, только передает под мандат изолированное {}, чтобы быть замененным именем файла и только первым. Используя {}/start.ksh
приведите к неуказанному поведению.
Аргумент, содержащий только эти два символа "{}", должен быть заменен набором агрегированных путей с каждым путем, переданным как отдельный аргумент вызванной утилите в том же порядке, что это было агрегировано. Размер любого набора двух или больше путей должен быть ограничен таким образом, что выполнение утилиты не заставляет систему {ARG_MAX} предел быть превышенной. Если больше чем один аргумент, содержащий только эти два символа "{}", присутствует, поведение является неуказанным.
Если строка utility_name или аргумента содержит эти два символа "{}", но не только эти два символа "{}", она определяется реализацией, находят ли замены теми двумя символами, или использует строку без изменения.
Один способ сделать, что Вы хотите с находкой Соляриса, состоял бы в том что команда:
find findtest -name "test[1-4]" -exec sh -c 'md5sum $1/start.ksh' foo {} \;
Более быстрый путь был бы:
find findtest -name "test[1-4]" -exec sh -c 'for i; do md5sum "$i/start.ksh"; done' foo {} +
test[1-4]
прежде чем это вызовет find
. Необходимо выйти из него с '…'
{}
рассматривается как шаблон только, когда это - отдельный маркер-exec
самостоятельно обычно costy и рекомендован использоваться любой с запаздыванием +
, или избегаемый в пользу питания xargs
.
Я знаю, что могу использовать для цикла как это, но мне любопытно знать, может ли он быть сделан в, каждый находит вызов:
find findtest -name 'test[1-4]' -print0 | xargs -0I{} -- md5sum '{}/start.ksh'
— выполнения md5sum
эффективно — со всеми именами файлов, данными сразу.
SunOS solaris 5.11 11.0 i86pc i386 i86pc
, затем?
– poige
14.06.2012, 17:26
find findtest -name test[1-4] -exec md5sum {}/start.ksh \;
имел бы работу во-первых.
– jlliagre
14.06.2012, 17:53
find ... -print0
и xargs -0
Gnuisms были интегрированы в Солярисе 11 стандартных команд для улучшения пользовательского знакомства. Я должен перефразировать свой комментарий, "Это не будет работать над Солярисом 10 или более старый, который является тем, что использует rahmu".
– jlliagre
15.06.2012, 02:45
ksh
конкретный или действительно ли это - то же на всех оболочках? – rahmu 14.06.2012, 15:53+
разделитель эквивалентен, но более прост, чем использование xargs. Нет ничего ksh, конкретного в командах, которые я предложил, они будут работать с наследием/bin/sh, ударом или ksh. – jlliagre 14.06.2012, 17:14for i;
. Это - то, что я подозревал, чтобы быть конкретной оболочкой. Для проверки я разобрался в нем, это просто неявный способ записатьfor i in $*
? – rahmu 14.06.2012, 18:02for i in "$@"
– jlliagre 15.06.2012, 01:57for i in "$@"
– jlliagre 15.06.2012, 01:57