Io-Redirection
重定向到與命令處理的源文件相同的文件
- 這裡不允許重定向。是
cat
不允許嗎?但是重定向不是獨立於執行它的任何命令嗎?$ cat bk > bk cat: bk: input file is output file
- 為什麼以下重定向會清空文件:
$ 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
)刪除文件內容。