Potrzebuję plików do pobrania do / tmp / cron_test /. Mój kod wget to
wget --random-wait -r -p -nd -e robots=off -A".pdf" -U mozilla http://math.stanford.edu/undergrad/
Czy jest jakiś parametr określający katalog?
Potrzebuję plików do pobrania do / tmp / cron_test /. Mój kod wget to
wget --random-wait -r -p -nd -e robots=off -A".pdf" -U mozilla http://math.stanford.edu/undergrad/
Czy jest jakiś parametr określający katalog?
Odpowiedzi:
Ze strony podręcznika:
-P prefix
--directory-prefix=prefix
Set directory prefix to prefix. The directory prefix is the
directory where all other files and sub-directories will be
saved to, i.e. the top of the retrieval tree. The default
is . (the current directory).
Musisz więc dodać -P /tmp/cron_test/
(krótki formularz) lub --directory-prefix=/tmp/cron_test/
(długi formularz) do swojego polecenia. Pamiętaj również, że jeśli katalog nie istnieje, zostanie utworzony.
--no-host-directories
lub -nH
na serwerze serverfault.com/questions/354792
-O to opcja określająca ścieżkę do pliku, który chcesz pobrać.
wget <file.ext> -O /path/to/folder/file.ext
-P to przedrostek, w którym pobierze plik z katalogu
wget <file.ext> -P /path/to/folder
/path/to/folder/
tam dostać
-O
tego, czego nie potrzebowałem, ale sprawił, że poczułem większą pewność, że -P
tego właśnie potrzebowałem.
-O
zastępuje -P
, więc nie można podać tylko katalogu wyjściowego (pomyśl dirname
i tylko wyjściową nazwę pliku (myśl basename
). W tym celu wystarczy -O
podać pełną ścieżkę do pliku.
Upewnij się, że adres URL jest poprawny dla wszystkiego, co pobierasz. Przede wszystkim adresy URL ze znakami podobnymi ?
i takimi nie mogą być analizowane i rozwiązywane. Spowoduje to pomylenie wiersza cmd i zaakceptuje wszelkie znaki, które nie są przetłumaczone na nazwę źródłowego adresu URL jako nazwę pliku, do którego pobierasz.
Na przykład:
wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect"
pobierze do pliku o nazwie, ?source=typ_redirect
.
Jak widać, znajomość kilku adresów URL pomaga zrozumieć wget
.
Uruchamiam z dysku wypożyczonego i jako źródło miałem tylko Linuksa 2.6.1 (system operacyjny importu jest niedostępny). Prawidłowa składnia, która rozwiązała mój problem z pobraniem ISO na fizyczny dysk twardy, to:
wget "(source url)" -O (directory where HD was mounted)/isofile.iso"
Można ustalić prawidłowy adres URL, znajdując punkt, w którym wget
pobiera się plik o nazwie index.html
(plik domyślny) i ma prawidłowy rozmiar / inne atrybuty pliku, którego potrzebujesz, pokazując następujące polecenie:
wget "(source url)"
Gdy ten adres URL i plik źródłowy są poprawne i są pobierane do index.html
, możesz zatrzymać pobieranie ( ctrl+ z) i zmienić plik wyjściowy, używając:
-O "<specified download directory>/filename.extension"
po źródłowym adresie URL.
W moim przypadku powoduje to pobranie pliku ISO i zapisanie go jako pliku binarnego, pod isofile.iso
którym mam nadzieję zamontować.
„-P” jest właściwą opcją, czytaj dalej, aby uzyskać więcej powiązanych informacji:
wget -nd -np -P / dest / dir --recursive http: // url / dir1 / dir2
Odpowiednie fragmenty stron podręcznika dla wygody:
-P prefix
--directory-prefix=prefix
Set directory prefix to prefix. The directory prefix is the directory where all other files and subdirectories will be saved to, i.e. the top of the retrieval tree. The default is . (the current directory).
-nd
--no-directories
Do not create a hierarchy of directories when retrieving recursively. With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the
filenames will get extensions .n).
-np
--no-parent
Do not ever ascend to the parent directory when retrieving recursively. This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.
man wget: -O plik --output-document = plik
wget "url" -O /tmp/cron_test/<file>