延遲檔案的 CreationTruncation

在執行任何命令之前,會建立/截斷使用 w 命令寫入的檔案。

$ sed 'w created-file' < /dev/null && ls created-file && rm created-file
created-file

從標準:

每個 wfile 都應在處理開始之前建立。實現應支援指令碼中至少十個 wfile 引數; 未指定實現支援的實際數字(大於或等於 10)。使用 wfile 引數將導致最初建立該檔案(如果該檔案不存在),或者應替換現有檔案的內容。

BSD sed 提供了 -a 選項,可以延遲建立/截斷檔案,直到用 w 命令寫入檔案。

$ if sed -a 'w created-file' < /dev/null && [ ! -e created-file ]; then
>       echo The file was not created
> fi
The file was not created