Io-Redirection

重定向到與命令處理的源文件相同的文件

  • May 1, 2018
  1. 這裡不允許重定向。是cat不允許嗎?但是重定向不是獨立於執行它的任何命令嗎?
$ cat bk > bk
cat: bk: input file is output file
  1. 為什麼以下重定向會清空文件:
$ less  bk > bk

awk也以less與重定向類似的方式工作。awk是我實際發現問題的那個,而上面的例子沒有意義

一般來說,使用重定向的正確方法是什麼?

問題是輸出重定向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)刪除文件內容。

引用自:https://unix.stackexchange.com/questions/165989