Pipe
將流從 wget 傳輸到 tar,並將其提取到特定位置失敗
我嘗試將流從 wget 傳輸到 tar 並將其提取到特定位置。
該文件由 wget 下載,但未使用 tar 解壓縮:
war="/var/www/html" domain="example.com" downloaded_file="https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.0.tar.gz" wget -P "${war}" "${downloaded_file}" | tar -xzvf ${downloaded_file} --transform="s,^${downloaded_file},${domain},"
set -x
錯誤:焦油:無法辨識的選項:
`–transform=s,^ https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.0.tar.gz,example.com,'
為什麼將流從 wget 傳輸到 tar 並將其提取到特定位置失敗?
您可以通過指示
wget
寫入文件的標準輸出來組合這兩個命令並跳過寫入文件:wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.0.tar.gz -O - | tar -xzvf -
這將導致
tar
’ 的輸出與wget
’ 進度指示器混合,因為它會在wget
下載時開始提取 tarball,因此您可能需要調整輸出選項。您可以使用
tar
’-C
選項來控制提取文件的位置:wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.0.tar.gz -O - | tar -xzvf - -C /var/www/html
目標目錄需要在命令執行之前存在,所以
mkdir
如果需要,首先它。