如何将更改名称的文件传递给 Bash 中的另一个命令?

如何将更改名称的文件传递给 Bash 中的另一个命令?

我经常使用 wget 从 Web 下载 tarball 和 zip 文件,然后对其进行 untar 或 gunzip 操作。我会这样做:

wget google.com/somefile.zip
unzip somefile.zip
rm somefile.zip

有没有办法让我在执行 wget 时自动将 zip 文件传递​​给 tar 或 unzip?伪代码如下:

wget google.com/somfile.zip && unzip

答案1

你可以避免使用中间文件,问题就会消失

wget -O - http://example.com/file.zip | funzip

答案2

MYFILE=filename; wget google.com/${MYFILE} && unzip ${MYFILE} && rm -f ${MYFILE}

答案3

这两个答案都有效,而且 @RedGrittyBrick 的答案会消除您删除的临时文件(我会接受他的答案)。我会添加另一种方法。

你可以做字符串操作关于您用于 URL 的变量来获取输出文件。

URL=google.com/somefile.zip
wget $URL
FILE=${URL##*/} # strip everything up to last /
unzip $FILE
rm -f $FILE

相关内容