Je télécharge souvent des tarballs avec wget depuis sourceforge.net.
Les fichiers téléchargés sont alors nommés, par exemple SQliteManager-1.2.4.tar.gz?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F&ts=1305711521&use_mirror=switch
Quand j'essaye de
tar xzf SQliteManager-1.2.4.tar.gz\?r\=http\:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F\&ts\=1305711521\&use_mirror\=switch
Je reçois le message d'erreur suivant:
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
Après avoir renommé le fichier à foo.tar.gz
l'extraction fonctionne parfaitement.
Existe-t-il un moyen que je ne sois pas obligé de renommer à chaque fois le fichier cible avant l'extraction?
--force-local
doit être ajouté avant lef
... lorsque j'ai essayé pour la première fois, cela me donnait un message d'erreur indiquant qu'il n'y avait pas de fichier tel que--force-local
. Peut-être que c'est trop "pas duh" mais je n'ai reconnu l'erreur que j'ai faite que 5 minutes plus tard.f
prend un argument qui est le fichier tar. Vous ne pouvez pas mettre--force-local
entre l'f
argument et son argument, mais c'est la norme pour tous les programmes, pas seulementtar
et pas seulement-f
. Vous pouvez mettre--force-local
aprèsf
tant qu'il est également après l'argument tof
.tar -cvzf ...
et je ne pense même pas à ce que chaque drapeau fait vraiment 99% du temps - c'est juste réflexif que c'est comme ça que je fais un tar.gz.tar zxvf C:\Users\jdoe\Documents\tarfile.tgz --force-local
Lorsque vous téléchargez avec
wget
, spécifiez le nom du fichier de sortie avec l'-O
option.Cela entraînera l'enregistrement du fichier avec le nom de fichier donné et vous évitera le problème ou le renommer. Et non, vous n'êtes pas le seul à souhaiter que sourcefourge ne soit pas stupide au point de distribuer des fichiers avec les paramètres url attachés.
la source
wget
la sienne. Utilisez l'--content-disposition
indicateur pour enregistrer avec le nom de fichier spécifié par le serveur (mais méfiez-vous des implications de sécurité, car SourceForge peut alors écrire dans un nom de fichier arbitraire).Télécharger en utilisant
De cette façon, wget enregistrera avec les noms de fichiers corrects. Par défaut, il utilise le dernier composant de l'URL
Par exemple
la source
Comme cité ci-dessus, la
:
(colonne) faittar
penser que c'est un fichier distant. Nous devons donc faire en sorte que ce soit local.Échouer
Solution
Expliquez le fait qu'il s'agit d'un fichier local en ajoutant
./
(répertoire actuel) et en citant correctement:L'avertissement est dû au fait que je crée dans le répertoire source.
la source
Pour les fichiers déjà téléchargés, cela devrait fonctionner:
la source