Предположим, у меня есть файл с именем «file1». Я хочу отобразить содержимое «file1» с помощью команды cat
в Unix.
И cat file1
, и cat < file1
работают одинаково. В чем разница между ними?
Предположим, у меня есть файл с именем «file1». Я хочу отобразить содержимое «file1» с помощью команды cat
в Unix.
И cat file1
, и cat < file1
работают одинаково. В чем разница между ними?
Это то место, откуда поступает информация.
cat file1
, оболочка не сделает ничего особенного. cat
вызывает open(2)
файл и читает из негоcat < file1
, оболочка вызывает open(2)
для файла и вызывает dup(2)
в STDIN_FILENO
для cat
. cat
только что прочитал из STDIN_FILENO
open(2)
, я имею в виду man 2 open
, это ручная запись для open
в разделе 2.
- person cnicutar; 21.02.2014
Мы можем использовать другую команду, чтобы заметить разницу между:
wc –w food2.txt
Возможный вывод:
6 food2.txt
команда сообщает имя файла, так как оно известно (передается как аргумент).
wc –w < food2.txt
Возможный вывод:
6
стандартный ввод перенаправляется в файл food2.txt без ведома команды.
cat
открывает файл, а cat > fileName
указывает оболочке открыть файл в стандартном вводе cat.
Вот ссылка с более подробной информацией/ответом: https://unix.stackexchange.com/questions/258931/difference-between-cat-and-cat