С большим количеством терминальных программ (, но не со всеми ), элемент управления -ПРОБЕЛ отправляет символ ASCII 00 (NUL ).
Вы можете увидеть это, например, с помощью od -cx
и ввода управления -ПРОБЕЛ, ВОЗВРАТ, управление _D. Вы увидите вывод, аналогичный:
% od -cx
^@
0000000 \0 \n
0a00
0000002
Control -@ также является символом NUL (@ — это ASCII 64, поэтому control -@ — это ASCII 00 ).
Таким образом, управление отображением -@ внутри экрана имеет эффект управления отображением -ПРОБЕЛ... из-за того, как терминал обрабатывает управление -ПРОБЕЛ.
Первое повторение определенно ничего не возвращает,поэтому второй 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.