Como posso fazer com que o wget preserve a estrutura do subdiretório enquanto ignora os diretórios pai?

2

Suponha que o diretório

http://www.example.com/content/media/images/vacation_photos

contém links para vários subdiretórios:

/sweden
/egypt
/canada

, cada um contendo um monte de JPEGs, e eu quero baixá-los todos para a minha pasta local:

/home/jack/VacationPhotos

Para que eu acabe com tudo nos diretórios

/home/jack/VacationPhotos/sweden
/home/jack/VacationPhotos/egypt
/home/jack/VacationPhotos/canada

o problema é que, se eu der o wget a essa URL, aplique a opção -r (recursiva) e a opção -P /home/jack/VacationPhotos , ela fará o download de tudo para

/home/jack/VacationPhotos/content/media/images/vacation_photos/sweden

e assim por diante, ao invés da estrutura que eu queria. É possível obter esse tipo de comportamento em wget?

    
por Jack M 28.02.2017 / 12:50

1 resposta

3

Veja a opção -nH e --cut-dirs em wget . A partir do manpage:

   --cut-dirs=number
       Ignore number directory components.  This is useful for getting a fine-grained control over the directory where recursive retrieval will be saved.

       Take, for example, the directory at ftp://ftp.xemacs.org/pub/xemacs/.  If you retrieve it with -r, it will be saved locally under ftp.xemacs.org/pub/xemacs/.  While the -nH option can
       remove the ftp.xemacs.org/ part, you are still stuck with pub/xemacs.  This is where --cut-dirs comes in handy; it makes Wget not "see" number remote directory components.  Here are
       several examples of how --cut-dirs option works.
           No options        -> ftp.xemacs.org/pub/xemacs/
           -nH               -> pub/xemacs/
           -nH --cut-dirs=1  -> xemacs/
           -nH --cut-dirs=2  -> .

           --cut-dirs=1      -> ftp.xemacs.org/xemacs/
           ...

   If you just want to get rid of the directory structure, this option is similar to a combination of -nd and -P.  However, unlike -nd, --cut-dirs does not lose with subdirectories---for
   instance, with -nH --cut-dirs=1, a beta/ subdirectory will be placed to xemacs/beta, as one would expect.
    
por ridgy 28.02.2017 / 13:15