xargs: непревзойденная одинарная кавычка; по умолчанию кавычки являются специальными для xargs, если вы не используете опцию -0

Я хотел бы посчитать все обычные файлы в домашнем каталоге с помощью команд:

$ find ~ -type f | xargs echo | wc -w
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option

Это подсказывает

xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option

В чем проблема с использованием?

1 ответ

Похоже, что некоторые из ваших имен файлов имеют апострофы (одинарные кавычки) в своих именах.

К счастью, find а также xargs есть способы обойти это. find"s -print0 вариант вместе с xargs"s -0 Опция производить и потреблять список имен файлов, разделенных NUL (\000) персонаж. Имена файлов в Linux могут содержать ЛЮБОЙ символ, КРОМЕ NUL а также /,

Итак, что вы действительно хотите:

 find ~ -type f -print0 | xargs -0 --no-run-if-empty wc -w

Читать man find;man xargs,

Другие вопросы по тегам