A menudo descargo tarballs con wget desde sourceforge.net.
Los archivos descargados se nombran, p. Ej. SQliteManager-1.2.4.tar.gz?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F&ts=1305711521&use_mirror=switch
Cuando trato de
tar xzf SQliteManager-1.2.4.tar.gz\?r\=http\:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F\&ts\=1305711521\&use_mirror\=switch
Recibo el siguiente mensaje de error:
tar (child): Cannot connect to SQliteManager-1.2.4.tar.gz?r=http: resolve failed
gzip: stdin: unexpected end of file
tar: Child returned status 128
tar: Error is not recoverable: exiting now
Después de renombrar el archivo a foo.tar.gz
la extracción funciona perfecto.
¿Hay alguna manera de que no esté obligado a cambiar el nombre cada vez que el archivo de destino antes de extraerlo?
--force-local
cuenta que debe agregarse antes def
... cuando probé esto por primera vez, me estaba dando un mensaje de error acerca de cómo no existe tal archivo--force-local
. Tal vez esto sea demasiado "no duh" pero no reconocí el error que cometí hasta 5 minutos después.f
toma un argumento que es el tarfile. No se puede poner--force-local
entref
y su argumento, pero eso es estándar para todos los programas, no solotar
y no solo-f
. Puede poner--force-local
después def
tanto tiempo como también después del argumento def
.tar -cvzf ...
y ni siquiera pienso en lo que hace cada bandera realmente el 99% del tiempo: es solo reflexivo que así es como hago un tar.gz.tar zxvf C:\Users\jdoe\Documents\tarfile.tgz --force-local
Cuando descargue con
wget
, especifique el nombre del archivo de salida con la-O
opción.Esto hará que el archivo se guarde con el nombre de archivo dado y le ahorrará el problema o le cambiará el nombre. Y no, no eres el único que desea que sourcefourge no sea tan tonto como para pasar archivos con los parámetros de URL adjuntos.
fuente
wget
de. Use la--content-disposition
bandera para guardar con el nombre de archivo especificado por el servidor (pero tenga cuidado con las implicaciones de seguridad, ya que SourceForge puede escribir en un nombre de archivo arbitrario).Descargar usando
De esa manera, wget guardará con los nombres de archivo correctos. Por defecto usa el último componente en la URL
Por ej.
fuente
Como se citó anteriormente, la
:
(columna) hacetar
pensar que es un archivo remoto. Por lo tanto, debemos hacer cumplir el hecho de que es local.Fallar
Solución
Explícito el hecho de que es un archivo local agregando
./
(directorio actual) y citando correctamente:La advertencia se debe al hecho de que estoy creando en el directorio de origen.
fuente
Para archivos ya descargados, esto debería funcionar:
fuente