Często ściągam tarballe za pomocą wget ze sourceforge.net.
Pobrane pliki są następnie nazywane, np SQliteManager-1.2.4.tar.gz?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F&ts=1305711521&use_mirror=switch
Kiedy próbuję
tar xzf SQliteManager-1.2.4.tar.gz\?r\=http\:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F\&ts\=1305711521\&use_mirror\=switch
Otrzymuję następujący komunikat o błędzie:
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
Po zmianie nazwy pliku foo.tar.gz
na ekstrakcję działa idealnie.
Czy istnieje sposób, że nie muszę zmieniać nazwy za każdym razem, gdy plik docelowy zostanie rozpakowany?
--force-local
musi zostać dodana przedf
... kiedy po raz pierwszy spróbowałem, wyświetlał mi komunikat o błędzie dotyczący braku takiego pliku jak--force-local
. Może to zbyt „no duh”, ale nie rozpoznałem błędu, który popełniłem dopiero 5 minut później.f
przyjmuje argument, który jest plikiem tar . Nie można umieścić argumentu--force-local
międzyf
i, ale jest to standard dla wszystkich programów, nie tylkotar
i nie tylko-f
. Możesz wstawić--force-local
pof
tak długo, jak jest to również po argumencie dof
.tar -cvzf ...
i nawet nie myślę o tym, co każda flaga robi w 99% przypadków - to jest po prostu refleksyjne, że tak robię tar.gz.tar zxvf C:\Users\jdoe\Documents\tarfile.tgz --force-local
Podczas pobierania za pomocą opcji
wget
określ nazwę pliku wyjściowego-O
.Spowoduje to zapisanie pliku z podaną nazwą pliku i zaoszczędzenie kłopotów lub zmiany jego nazwy. I nie, nie jesteś jedynym, który życzy sobie, aby sourcefourge nie był tak głupi, aby rozdawać pliki z dołączonymi parametrami adresu URL.
źródło
wget
jest. Użyj--content-disposition
flagi, aby zapisać z nazwą pliku podaną przez serwer (ale uważaj na konsekwencje dla bezpieczeństwa, ponieważ SourceForge może następnie zapisać do dowolnej nazwy pliku).Pobierz za pomocą
W ten sposób wget zapisze poprawne nazwy plików. Domyślnie używa ostatniego składnika w adresie URL
Na przykład
źródło
Jak wspomniano powyżej,
:
(kolumna) sprawiatar
, że jest to plik zdalny. Musimy więc egzekwować fakt, że jest lokalny.Zawieść
Rozwiązanie
Wyjaśnij, że jest to plik lokalny, dodając
./
(bieżący katalog) i poprawnie cytując:Ostrzeżenie wynika z faktu, że tworzę w katalogu źródłowym.
źródło
W przypadku już pobranych plików powinno to działać:
źródło