Me gustaría descargar y extraer un archivo en un directorio determinado. Así es como lo he estado haciendo hasta ahora:
wget http://downloads.mysql.com/source/dbt2-0.37.50.3.tar.gz
tar zxf dbt2-0.37.50.3.tar.gz
mv dbt2-0.37.50.3 dbt2
En cambio, me gustaría descargar y extraer el archivo sobre la marcha , sin tener que tar.gzescribirlo en el disco. Creo que esto es posible canalizando la salida de wgetto tary dando tarun objetivo, pero en la práctica no sé cómo juntar las piezas.

wget -qO- your_link_here | tar xvz - -C /target/directorywget -qO- <url> | tar -xvz -C <target folder>trabajó en gnu tar.Otra opción es usar
curlqué escrituras en stdout por defecto:fuente
curl -s some_url | tar xvz - -C /tmp$ curl -L https://api.github.com/repos/repo_owner/repo_name/tarball | tar tvfz - -C /tmp --wildcards *.pyEste oneliner hace el truco:
breve explicación: el lado derecho del paréntesis se ejecuta primero (
-qle dice a wget que lo haga en silencio,-O -se usa para escribir la salida en stdout).Luego creamos una tubería con nombre utilizando el operador de sustitución de proceso de Bash
<(para crear una tubería con nombre . De esta manera, creamos un descriptor de archivo temporal y luego dirigimos el contenido de ese descriptor a tar utilizando el<operador de redirección de archivos.fuente