Почему ни один из каталогов, отправляющих через канал в grep, не получает результат поиска?

С большим количеством терминальных программ (, но не со всеми ), элемент управления -ПРОБЕЛ отправляет символ ASCII 00 (NUL ).

Вы можете увидеть это, например, с помощью od -cxи ввода управления -ПРОБЕЛ, ВОЗВРАТ, управление _D. Вы увидите вывод, аналогичный:

% od -cx
^@
0000000  \0  \n
           0a00
0000002

Control -@ также является символом NUL (@ — это ASCII 64, поэтому control -@ — это ASCII 00 ).

Таким образом, управление отображением -@ внутри экрана имеет эффект управления отображением -ПРОБЕЛ... из-за того, как терминал обрабатывает управление -ПРОБЕЛ.

0
08.05.2020, 09:08
1 ответ

Первое повторение определенно ничего не возвращает,поэтому второй grep получает пустой список аргументов от xargs.

Второй grep включает -r (recursive ).

Со страницы man grep:

-r, --recursive :: Note that if no file operand is given, grep searches the working directory.

Таким образом, grep, запускаемый xargs, возвращается в /home/debian.

0
28.04.2021, 23:15

Теги

Похожие вопросы