Avevo un requisito simile e la seguente combinazione sembra essere la scelta perfetta:
Nell'esempio seguente, tutti i file in http://url/dir1/dir2 (solo) vengono scaricati nella directory locale /dest/dir
wget -nd -np -P /dest/dir --recursive http://url/dir1/dir2
Grazie @ffledgling per il suggerimento su "-nd"
Per l'esempio precedente:
wget -nd -np --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper
Frammenti dal manuale:
-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.
-np
L'opzione (nessun genitore) probabilmente farà quello che vuoi, legata a -L 1
(Penso, non ho un'installazione di wget prima di me), che limita la ricorsione a un livello.
MODIFICARE. ok. gah... forse dovrei aspettare fino a quando non avrò preso il caffè.. C'è un --cut
o un'opzione simile, che consente di "tagliare" un numero specificato di directory dal percorso di output, quindi per /a/b/c/d
, un taglio di 2 costringerebbe wget a creare c/d
sulla tua macchina locale
Per un percorso come:ftp.site.com/a/b/c/d
-nH
scaricherà tutti i file nella directory a/b/c/d
nella directory corrente e -nH --cut-dirs=3
scaricherà tutti i file nella directory d
nella directory corrente.