2016-09-10 7 views
0

В конкретном каталоге я создал файл с именем «имя_файла» и добавляю к нему содержимое. Когда я набрал cat fileName, его содержимое печатается на терминале. Теперь я использовал следующую команду:Перенаправление файла кота файла в тот же файл

cat fileName>fileName

не показаны ошибки. Теперь, когда я пытаюсь увидеть содержимое файла, используя,

cat fileName

ничего не было показано в терминале и файл пуст (когда я проверял). Что является причиной этого?

ответ

1

> Т.е. перенаправление в тот же файл создаст/усекает файл перед вызовом команды cat, так как имеет более высокий приоритет. Вы могли бы избежать такой же, используя промежуточный файл, а затем из промежуточного в реальный файл или вы можете использовать тройник, как:

cat fileName | tee fileName 
+0

Могу ли я узнать причину downvote @downvoter? Пожалуйста, прокомментируйте, когда вы подадите ответ, чтобы он помогал другим, и, конечно же, ко мне! – SMA

0

Для уточнения на ответ SMA, в файл усекается, поскольку Перенаправление обрабатывается интерпретатором, который открывается файл для записи перед вызовом команды. при запуске cat file > file оболочка обрезает и открывает файл для записи, устанавливает stdout в файл, а затем выполняет ["cat", "file"]. Поэтому вам придется использовать какую-то другую команду для задачи, например tee

+0

Могу ли я узнать причину понижения? Прошу прокомментировать, когда вы подаете ответ – nithin

 Смежные вопросы

  • Нет связанных вопросов^_^