curl脚本以提取tar文件

时间:2018-11-08 13:04:04

标签: bash shell curl

我有一个curl脚本,用于从URL中读取文件。现在,下载tar文件后,我需要解压缩它们。

for file in $(/usr/bin/curl 'https://linktofile.com/yourfile.txt' );
  do
    echo $file;
    /usr/bin/curl -L -J -O "$file";
done;

输出到屏幕上的是

curl: Saved to filename 'your_file_1.tar'

如何解压缩保存的文件? 我尝试添加tar -xvf $file,但没有任何反应。 如何获取刚刚保存的文件的名称?

1 个答案:

答案 0 :(得分:1)

使用-J会使文件的位置取决于Content-Disposition标头,因此您需要检索它指定的文件名。为此,您可以通过-w指定curl命令的输出,您将希望输出该文件名:

for url in $(/usr/bin/curl 'https://linktofile.com/yourfile.txt' ); do
    filename=$(/usr/bin/curl -sLJOw '%{filename_effective}' "$url")
    tar -xvf "$filename"
done