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