[Comm] find and xargs

Konstantin S. Uvarin khedin на mail.ru
Вт Мар 31 12:29:32 MSD 2009


On Monday 30 March 2009 23:32:18 Vladimir Karpinsky wrote:
> Здравствуйте!
>
> Насколько я понял man, для предотвращения нежелательных ситуаций с xargs, в
> случае когда find ничего не находит, рекомендуется использовать -print0 в
> find и -0 в xargs, но:
>
> find ./   -size -1k -print0 | xargs -0p ls -l
> ls -l ?...n
>
> файлов меньше 1k в текущем каталоге нет, и ls -l получает на вход пустую
> строку со всеми вытекающими. Вероятно, я что-то не понял --- наставьте на
> путь истинный.

man xargs:

       --no-run-if-empty, -r
              If the standard input does not contain any nonblanks, do not 
              run  the command.  Normally, the command is run once even if
              there is no input.
              This option is a GNU extension.

==========

А -print0 и -0 -- это для случая, когда в выводе кавычки, пробелы и прочая. 
Кстати, часто вполне достаточно find | xargs -d\\n -- если, конечно, нет в 
выводе символов перевода строки. 

-- 
Konstantin S. Uvarin            jabber:lodin на jabber.ru
WinNT error 003: FPU error - enter any 11 digit prime number to continue.


Подробная информация о списке рассылки community