7

I wanted to download some tuts on aircrack by wget and I failed:

wget -r 2 http://www.aircrack-ng.org/doku.php\?id=tutorial\&DokuWiki=78e8249415a9ce232228ed8f9f02b9dd 
--2011-10-06 14:16:11--  http://2/
Resolving 2... 0.0.0.2
Connecting to 2|0.0.0.2|:80... failed: Invalid argument.
--2011-10-06 14:16:11--  http://www.aircrack-ng.org/doku.php?id=tutorial&DokuWiki=78e8249415a9ce232228ed8f9f02b9dd
Resolving www.aircrack-ng.org... 213.186.33.2, 2001:41d0:1:1b00:213:186:33:2
Connecting to www.aircrack-ng.org|213.186.33.2|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
www.aircrack-ng.org/doku.php?id=tutorial&DokuWiki=78e8249415a9ce232228ed8f9f02b9dd: Invalid argument

Cannot write to `www.aircrack-ng.org/doku.php?id=tutorial&DokuWiki=78e8249415a9ce232228ed8f9f02b9dd' (Invalid argument).

Do you know how to fix this problem ?

oneat
  • 3,321

4 Answers4

10

This is probably the filesystem you're downloading to not allowing a filename with "?" in it. Note that the error is "Cannot write".

You can use the --restrict-file-names=windows option to escape names for compatibility with FAT filesystems. (Note that the non-reversible additional %-encoding done by wget is not actually correct vs. web architecture, but you probably don't care.)

You could also use -O <filename> to specify a particular filename if you were downloading only one file.

Kevin Reid
  • 3,412
4

The & also commonly causes problems. Try putting the whole url in quotes.

pjc50
  • 6,071
2

As suggested by pjc50, please put the URL within quotes when you have special characters in it. Therefore, you should try:

wget -r 2 'http://www.aircrack-ng.org/doku.php?id=tutorial&DokuWiki=78e8249415a9ce232228ed8f9f02b9dd'

When you do not use quotes, the shell, on encountering a &, assumes you want to run the wget job in background.

Barun
  • 146
0

View the response headers with --append-output=log.txt --server-response options.

If Content-Disposition header exists and points to the clear filename, simply use --content-disposition option in wget to support this header and replace the mentioned filename.

It comes in handy when 'Invalid argument' invokes from the presence of a query string (?).

ayuval
  • 1