看板 Linux 關於我們 聯絡資訊
Linux shell 執行的步驟是由後到前。 當你執行 echo 123 > abc.txt 時, shell 會先產生 abc.txt 並打開 ( open() ), 再把 123 倒進去。 如果 abc.txt 已經存在,就會把 abc.txt 的內容清掉, 呼叫 system call open() 打開 abc.txt,再把 123 倒進去。 所以當你的 sed 指令要開始處理 123_pre.c 的時候, 這個 file 已經先被清掉了。 ※ 引述《typeotoco (打字男)》之銘言: : sed 's/include/INCLUDE/g' 123_pre.c > 123_pre.c : 請問一下上面這個 command 執行完後 123_pre.c 變成空檔案了 : 嗯 我印象中的確也是不能把同一個檔案當作 redirection 的 target : 只是還蠻好奇 這個指令的執行過程或步驟是怎樣的, : 順便請教一下 如果我要取代完放回原檔案 : 應該怎麼下正確的 command ? : 謝謝! -- I'm root. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.169.252.133
typeotoco:謝謝 我瞭解了 08/21 14:35