Используя команду cat, почему результат печатается так? - PullRequest
2 голосов
/ 11 апреля 2019
># cat /etc/passwd > test 
># cat < test >> test 

Я ввожу в командной строке вот так.

Тогда результатом команды является то, что размер тестового файла увеличивается очень быстро и быстро.Почему это происходит?

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

Во второй команде вы говорите ОС:

  1. Открыть test для чтения (< test)
  2. Открыть test для записи и искать до конца (>> test)

А затем cat читает фрагмент из текущего указателя файла чтения и записывает этот фрагмент в текущий указатель файла записи, пока не достигнет конца. Однако, поскольку файл продолжает расти с каждой записью, блок чтения никогда не достигает фактического конца и продолжается вечно.

0 голосов
/ 11 апреля 2019

Похоже, что вы читаете и пишете в один и тот же файл ("test").Очевидно, ваш компьютер пишет быстрее, чем читает.Read не получает EOF (конец файла) и, следовательно, файл увеличивается.

Интересно, на каком типе устройства / файловой системы создается файл "test"?

...