перенаправить в тот же файл, что и исходный файл, обработанный командой

  1. Перенаправление здесь запрещено. cat не позволяет? Но не перенаправление не зависит от какой-либо команды, запущенной с ним?

     $ cat bk > bk cat: bk: input file is output file 
  2. Почему следующее перенаправление пуст файл:

  3. Почему перенаправление STDERR на / dev / null выполняется таким образом?
  4. Как вы помните синтаксис для перенаправления 2> и 1
  5. Восстановление вывода на терминал после выдачи «exec &> filename»
  6. Перенаправить вывод программы в файл не удается
  7. Почему некоторые linux-инструменты записывают в STDERR вместо STDOUT по умолчанию?
  8. Когда следует использовать перенаправление ввода?
  9.  $ less bk > bk 

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

В общем, как правильно использовать перенаправление?

  • Как перенаправить вывод запущенной программы в / dev / null
  • Восстановление вывода на терминал после выдачи «exec &> filename»
  • Как определить, является ли вывод команды или сценария оболочки стандартным или stderr
  • Почему выход не перенаправляется в файл?
  • является ли Linux перенаправлением «>>» медленнее с большими файлами?
  • Почему я могу добавить файл, но не перезаписать его?
  • One Solution collect form web for “перенаправить в тот же файл, что и исходный файл, обработанный командой”

    Проблема в том, что перенаправление вывода убивает файл до того, как будет запущено less :

     open("file", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3 dup2(3, 1) = 1 close(3) = 0 execve("/usr/bin/less", ["less", "-WNS", "file"], [/* 102 vars */]) = 0 

    Обычный переназначение перенастройки перезаписывает файл. O_TRUNC (см. man 2 open ) удаляет содержимое файла.

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