Удаление оператора перенаправления не изменяет выход. Зачем?

Я видел это использование перенаправления где-то и думал, что это опечатка:

grep root < /etc/passwd 

Но после запуска я увидел, что он дает тот же результат с grep root /etc/passwd :

 $ grep root < /etc/passwd root:x:0:0:root:/root:/bin/bash $ grep root /etc/passwd root:x:0:0:root:/root:/bin/bash 

То же самое происходит с

 cat < /etc/passwd cat /etc/passwd 

Однако при использовании с ls перенаправление игнорируется:

 ls < /etc/passwd 

не выводит один и тот же вывод с

 ls /etc/passwd 

Что происходит?

One Solution collect form web for “Удаление оператора перенаправления не изменяет выход. Зачем?”

Многие утилиты, которые работают с файлами, будут принимать stdin (стандартный ввод) в виде потокового ввода или принимать имя файла в качестве параметра. Ваши < file примеры < file перенаправляют вывод файла в утилиту. Файл был открыт оболочкой и передан вашей утилите через stdin ..

С другой стороны, с cat file , cat обрабатывает открытие и чтение файла , а перенаправление не участвует.

ls никогда не читает файл, поэтому он не принимает имя файла в качестве параметра с целью открытия и чтения файла .. (он принимает маски имен файлов) … Для ls действие перенаправления, по сути, игнорируется, потому что ничего в этом процессе не читает файл с открытым оболочкой …

Чтобы определить, как работает какая-либо утилита, просто введите man utility-name в терминале … man – сокращение от ручного … например. man cat представляет вам руководство для кошек

Interesting Posts

Как остановить debian от установки раздела при запуске

Как установить более свежие версии программного обеспечения, чем то, что предоставляет Debian?

найти файл, скопировать, но с другим именем

Убивать процесс, когда ПИД постоянно меняется

Печать на «стандартном выходе» и «стандартной ошибке»

Caja – слишком быстрое обновление

следует ли уменьшить размер / dev / shm?

Является ли `ls -l` сортировка файлов неинтуитивно?

опция xargs -I

Как отправить аудиовыход через фильтр верхних частот в ALSA?

Почему вывод «free» отличается от суммирования использования памяти для каждого процесса в «ps»?

Vim: сводка кода на питоне не отличается от кода C / C ++

Человеко-читаемые файлы с помощью printf

Синтаксис синтаксиса подстановки команд в bash – какой из этих двух методов лучше?

Вызвать другие сценарии с исходным кодом и сделать условный условный оператор с операторами if

Linux и Unix - лучшая ОС в мире.