Это, вероятно, во многих часто задаваемых вопросах - вместо использования:
cat file | command
(что называется бесполезным использованием кошки), правильный путь должен быть:
command < file
Во-вторых, "правильный" путь - ОС не должна порождать дополнительный процесс.
Несмотря на это, я продолжал использовать бесполезную кошку по двум причинам.
-
более эстетично - мне нравится, когда данные перемещаются равномерно только слева направо. И проще заменить
cat
чем-то другим (gzcat
,echo
,...), добавить второй файл или вставить новый фильтр (pv
,mbuffer
,grep
...). -
Я "почувствовал", что в некоторых случаях это может быть быстрее. Быстрее, потому что есть 2 процесса, первый (
cat
) читает, а второй делает что угодно. И они могут работать параллельно, что иногда означает более быстрое выполнение.
Правильна ли моя логика (по 2-й причине)?