我尝试将流从 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},"
Run Code Online (Sandbox Code Playgroud)
set -x
错误:
tar:无法识别的选项:
`--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 - |\ntar -xzvf -\n
Run Code Online (Sandbox Code Playgroud)\n\n这将导致tar
\xe2\x80\x99s 输出与 \xe2\x80\x99s 进度指示器混合,因为它将在下载wget
tarball 的同时开始提取 tarball ,因此您可能需要调整输出选项。wget
您可以使用tar
\xe2\x80\x99s-C
选项来控制文件的提取位置:
wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.0.tar.gz -O - |\ntar -xzvf - -C /var/www/html\n
Run Code Online (Sandbox Code Playgroud)\n\n目标目录需要在命令运行之前存在,因此mkdir
如果需要的话首先要存在。
归档时间: |
|
查看次数: |
9260 次 |
最近记录: |