
Dies ist die Ausgabe des Tree-Befehls in einem Verzeichnis:
.
|-- asdf.txt
|-- asd.txt
|-- fabc
| |-- fbca
| `-- file1.txt
|-- fldr1
|-- fldr2
| `-- index.html
|-- fldr3
| |-- cap.txt
| `-- f01
`-- out.txt
6 directories, 6 files
Ich starte einen lokalen HTTP-Server in diesem Verzeichnis. Anschließend führe ich den folgenden Befehl aus:
wget -r -nv --spider --no-parent http://localhost:3000 -o -
...und erhalten die folgende Ausgabe:
2017-01-02 20:07:24 URL:http://localhost:3000/ [1580] -> "localhost:3000/index.html" [1]
http://localhost:3000/robots.txt:
2017-01-02 20:07:24 ERROR 404: Not Found.
2017-01-02 20:07:24 URL:http://localhost:3000/fabc/ [897] -> "localhost:3000/fabc/index.html" [1]
2017-01-02 20:07:24 URL:http://localhost:3000/fldr1/ [536] -> "localhost:3000/fldr1/index.html" [1]
2017-01-02 20:07:24 URL:http://localhost:3000/fldr2/ [0/0] -> "localhost:3000/fldr2/index.html" [1]
2017-01-02 20:07:24 URL:http://localhost:3000/fldr3/ [896] -> "localhost:3000/fldr3/index.html" [1]
2017-01-02 20:07:24 URL: http://localhost:3000/asd.txt 200 OK
unlink: No such file or directory
2017-01-02 20:07:24 URL: http://localhost:3000/asdf.txt 200 OK
unlink: No such file or directory
2017-01-02 20:07:24 URL: http://localhost:3000/out.txt 200 OK
unlink: No such file or directory
2017-01-02 20:07:24 URL:http://localhost:3000/fabc/fbca/ [548] -> "localhost:3000/fabc/fbca/index.html" [1]
2017-01-02 20:07:24 URL: http://localhost:3000/fabc/file1.txt 200 OK
unlink: No such file or directory
2017-01-02 20:07:24 URL:http://localhost:3000/fldr3/f01/ [548] -> "localhost:3000/fldr3/f01/index.html" [1]
2017-01-02 20:07:24 URL: http://localhost:3000/fldr3/cap.txt 200 OK
unlink: No such file or directory
Found no broken links.
FINISHED --2017-01-02 20:07:24--
Total wall clock time: 0.3s
Downloaded: 7 files, 4.9K in 0s (43.4 MB/s)
- Ist wget so geschrieben, dass es immer sucht
index.html
? Können wir das deaktivieren? - Was sind das für Zahlen wie 1580, 536, 0/0 usw.?
- Warum steht da
unlink: No such file or directory
?
Antwort1
Sie können versuchen, Dateien mit der Option zu überspringen
--reject
(akzeptiert auch Platzhalter):wget --reject index.html
Dies sollten Sie jedoch nicht tun. Wenn Sie wget mit verwenden -r
, muss es irgendwie eine Liste der Dateien im Verzeichnis erhalten. Daher fragt wget nach der Datei index.html und analysiert den Inhalt in der Hoffnung, Pfade zu anderen Dateien in diesem Verzeichnis zu erhalten. Wenn sich im Ordner keine Datei index.html befindet, generiert der Webserver sie normalerweise für wget – diese Datei enthält die Verzeichnisliste. Die Erstellung dieser Listendatei muss auf dem Webserver aktiviert sein – andernfalls erhält wget eine HTTP 404-Antwort und der rekursive Download schlägt fehl.
- Dies ist die Dateigröße in Bytes.
- Das bedeutet, dass eine Datei nicht gelöscht werden konnte (wahrscheinlich, weil sie gar nicht erstellt wurde). Haben Sie Schreibrechte für das Verzeichnis, in das Sie mit wget herunterladen?
Bearbeiten:Nachdem ich die Downloads von wget mit getestet habe --spider
, --recursive
konnte ich Ihren Unlink-Fehler reproduzieren. Es scheint, dass wget den Inhaltstyp der Antwort verwendet, um zu bestimmen, ob die Datei Links zu anderen Ressourcen enthalten kann. Wenn der Inhaltstyptest fehlschlägt und die Datei nicht heruntergeladen wird, versucht wget trotzdem, die temporäre Datei zu entfernen, als ob sie heruntergeladen worden wäre (Dies wird deutlich, wenn wget erneut mit ausgeführt wird --debug
. Es wird eindeutig angezeigt Removing file due to --spider in recursive_retrieve():
). Ich vermute, Sie haben einen Fehler in wget gefunden.