Como lidar com vários padrões de arquivos / diretórios no wget

0

Portanto, eu tenho um diretório com um milhão de arquivos e diretórios de 50k aninhados com aproximadamente 10 camadas. Demora muito tempo simplesmente para percorrer e buscar um arquivo de 100 bytes a partir de 1/10 dos diretórios, porque ele tem que fazer o ftp em cada diretório e fazer o que fizer. Provavelmente leva algumas horas para fazer isso, mesmo que não haja realmente nenhum conteúdo sendo baixado.

Portanto, uma solução para o meu problema (ou o que estou tentando) é fazer isso:

function download() {
  wget -r \
    -c \
    -A $3 \
    -A $2 \
    "$1$2"
}

domain="ftp://domain.com"
path=/foo

download $domain $path $path/*/README*
download $domain $path $path/*/data.xml
download $domain $path $path/*/ARCHIVE_*/*.gz
download $domain $path $path/*/Bar/example.txt
download $domain $path $path/*/Hello/*/world.*.txt

Mas isso ainda não está funcionando, e quero que cada linha faça o download desses padrões, mas parece que tenho mais trabalho a fazer lá. Eu estou recebendo um monte destes:

Rejecting 'README'
Rejecting 'X_Y_Z.gz'
...

Então eu tentei apenas fazer isso:

download $domain $path \
  $path/*/README*,$path/*/data.xml,$path/*/ARCHIVE_*/*.gz,$path/*/Bar/example.txt,$path/*/Hello/*/world.*.txt

Mas ainda é o mesmo problema.

A questão aqui é como eu posso fazer este um wget comando (de modo que ele não tem para reprocessar o diretório árvore inteira ftp 5 vezes) baixar apenas os arquivos / diretórios que correspondam a esses padrões.

Eu tento alterar o -A para -I e ele começa a baixar as coisas que eu não quero:

function download() {
  wget -r \
    -c \
    -I $3 \
    -I $2 \
    "$1$2"
}

Eu tentei este também, mas ele baixa coisas que eu não quero :

function download() {
  wget -r \
    -c \
    --accept-regex $3 \
    "$1$2"
}

domain="ftp://domain.com"
path=/foo

download $domain $path \
  $path/.*/README.*,$path/.*/data.xml,$path/.*/ARCHIVE_.*/.*.gz,$path/.*/Bar/example.txt,$path/.*/Hello/.*/world..*.txt
    
por Lance Pollard 07.11.2018 / 17:30

0 respostas

Tags