Xargs не слушает stdin - PullRequest
       25

Xargs не слушает stdin

0 голосов
/ 03 августа 2011

Я пытаюсь добавить свойство svn: Keywords ко всем существующим * .php и * .phtml файлам.Поэтому я использую эту команду:

find . -regex '.*\.php' -o -regex '.*\.phtml'|xargs svn propset svn:keywords "Id"

Это должно, согласно Mateusz Loskot , добавить свойство ко всем файлам.Если я запускаю find . -regex '.*\.php' -o -regex '.*\.phtml', все файлы найдены, но xargs возвращает это сообщение: xargs: svn: No such file or directory.

Я также пытался экспортировать найденный список (>> ~/temp) и использовать xargs -a для чтения аргументов изввод файла, безуспешно.Как я могу обновить все мои php файлы?

PS.Я использую Kubuntu Linux Natty (11.04), в котором есть bash 4.2.8 и xargs 4.4.2 (если это может иметь значение)

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Ваша команда выглядит хорошо.Кажется, что xargs не может найти команду svn в PATH.Убедитесь, что он доступен, или используйте полный путь к файлу (which svn должен отображать полный путь к svn).

Для предотвращения пробелов в имени файла Я бы порекомендовал аргумент -print0для find и -0 для xargs:

find . -name '\*.php' -o -name '\*.phtml' -print0 | xargs -0 svn propset svn:keywords "Id"
0 голосов
/ 03 августа 2011

Здесь вы можете попробовать обычные трюки, такие как:

find ... | while read i ; do svn propset svn:keywords Id "$i" ; done
...