Pipe
-f 的 tar 靈活性
例如,在以下命令中,
tar -xzv
有效但tar -xzvf
失敗:wget ${target_url} -O - | tar -xzv --strip-components 1 -C ${web_application_root}/${domain}
我知道我將數據流下載到 STDOUT
wget
並將其作為 STDIN 管道以tar
使用該數據創建(覆蓋)目錄文件。我知道
tar -xzvf
失敗是因為未儲存到文件的數據流不是外殼的文件;所以告訴 tar-f
“我使用文件”會破壞操作。我有一個沒有註意到的情況,
-f
還有一個我忘記了我應該在管道時將其移除的情況;這些情況很可能發生,因為我幾乎總是使用-f
withtar
。是否有 tar 的版本,或製作 tar 的調整,忽略
-f
數據流未儲存到文件的情況?相關:
-f
不會改變tar
’ 與流或文件或類似的行為有關的行為;它指定要使用的檔案的名稱。我不知道有任何變體
tar
可以處理-f
選項沒有參數的情況,我也不知道有任何可靠的方法可以做到這一點。正如cas所說,你需要記住-f
總是需要爭論。使其不易出錯的一種方法是始終將其分開。與單獨f
的.-xzvf``-f
如有必要,最好始終使用
-f
with ;-
這避免了依賴於tar
沒有-f
選項的行為(這取決於編譯時選項和TAPE
變數)。解決問題的一種方法是始終從-f -
行動開始,並-
在適當的情況下進行更改。