> great....but i need explaination: what does "2>&1", "r"" mean? without
> it code:

* '2>&1' says that standard error stream (whose file desecriptor is 2)
will be redirected
to the same place where the standard output stream is sent. Since wget
sends its output
to standard error, you need this redirection to capture the output using pipe.

Take the following commands with pipes as an example.

> ls / | wc
     30      30     181
> ls ___no_such_path___ | wc
ls: cannot access ___no_such_path___: No such file or directory
      0       0       0
> ls ___no_such_path___ 2>&1 | wc
      1       9      64

Incidentally, '2>&1' is often used to suppress error messages and
standard output.

> some_command > /dev/null 2>&1
>


* 'r' means you are opening the pipe in read-only mode.