2

Хотя это основной материал, но все же мне интересно. Рассмотрим эти два примера.

Случай 1:

[root@dhcppc0 practice]# cat file1 > wc -l
cat: invalid option -- l
Try `cat --help' for more information.

Случай 2:

[root@dhcppc0 practice]# cat file1 | wc -l
7

Интересно, почему перенаправление не работает в первом случае? когда использовать редирект, а когда использовать каналы? Я долгое время работала в Linux, но все же эти базовые вещи сбивают меня с толку.

Пожалуйста помоги.

2 ответа2

5

Оператор перенаправления используется для потоковой передачи стандартного stdout в файл (>) или для потоковой передачи содержимого файла в стандартный stdin команды (<).

Оператор трубы | потоков выход stdout к следующему процессов процессов stdin

Единственный способ заставить ваше первое дело работать - это использовать временный файл, поэтому вам нужно будет выполнить два шага:

cat file1 > tmpfile
wc -l < tmpfile
3

Вы используете каналы, когда хотите подключить FD одного исполняемого файла к FD другого. Вы используете перенаправление, когда хотите подключить FD исполняемого файла к файлу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .