Ожидается, что find
параметр -print0
и xargs
параметр -0
будут работать вместе. man
страница find
говорит:
-print0 .... Этот параметр соответствует параметру -0 команды xargs.
Ну, у меня они работают до тех пор, пока find
выдает некоторый результат. Как я могу заставить его работать, когда find не выводит НЕТ вывода?
find /dev /sys /usr -maxdepth 0 -print0 | xargs -0 -n1 | wc -l # 3 - OK
find /dev /sys -maxdepth 0 -print0 | xargs -0 -n1 | wc -l # 2 - OK
find /dev -maxdepth 0 -print0 | xargs -0 -n1 | wc -l # 1 - OK
find /dev -maxdepth 0 -name "x" -print0 | xargs -0 -n1 | wc -l # 1 instead of 0 - Fail
Могут случиться какие-то плохие вещи, например,
find -type d -name ... -print0 | xargs -0 du -sh
когда каталоги не найдены, xargs
вызывает du
без аргументов, а du
предполагает .
P.S. Я знаю о параметре -exec
для find
, я просто хочу правильно соединить find
и xargs
.