Pipe
將輸出重定向回文件
我發出了以下命令,認為它會獲取 的內容
foo.txt
,對其進行處理,然後將其寫回原始文件。相反,當我打開文件時,它是空的。cat foo.txt | tr " " "\n" > foo.txt
這一行到底發生了什麼,我該如何改寫它以將輸出重定向回
foo.txt
?
重定向 (
>foo.txt
) 在命令執行之前由父 shell 完成cat
,將文件重置為 0 字節。使用類似的東西tr " " "\n" foo.txt >foo.new && \ mv foo.new foo.txt
還要避免無用的使用
cat
.