Command
以下命令的解釋一個接一個地執行
我有這兩個命令一個接一個地執行。
cat a.log >> b.log rm -r a.log
這裡到底發生了什麼?為什麼貓在這裡被使用?>> 符號呢?使用的 -r(recursive) 標誌是什麼?
考慮到您更正的程式碼,
cat a.log >> b.log rm -r a.log
- 將
cat
其文件列表或stdin(如果未提供或-
列表中包含破折號 ( ) )複製到其stdout。看man cat
- 這
>>
是一個標準的 shell 重定向運算符,它將命令的輸出附加到命名文件。在範例中,此命名文件是b.log
. 如果不是,請參閱man bash
或您首選 shell 的文件,以及shell 的控制和重定向運算符是什麼?bash
- 該
rm
命令(幾乎)無條件地刪除文件a.log
。因為它試圖刪除一個文件,所以該-r
標誌無關緊要並被忽略。如果在互動式會話中執行,該命令將要求使用者確認文件是否具有寫入權限。看man rm
如果我正在編寫這段程式碼,我可能會這樣建構它
cat a.log >> b.log && rm -f a.log
在這裡,
a.log
僅當cat
成功將其內容附加到目標文件時才會刪除文件b.log
。