Copiando arquivos selecionados em várias pastas para um destino diferente no Ubuntu

0

Eu tenho o caminho da pasta no LINUX (Ubuntu) da seguinte forma:

/data/nldas/raw/hourly/

na pasta horária eu tenho subpastas de 1979 a 2016 e na pasta de cada ano eu tenho pastas de dias julianos de 1 a 365/366. Em cada pasta do dia juliano, eu preciso copiar NLDAS_VIC0125_H.*.grb arquivos para um destino diferente no caminho LINUX, por exemplo %código%. Eu não quero a mesma estrutura de pastas no caminho de destino.

Alguém pode me ajudar a fazer no LINUX, por favor?

Obrigado antecipadamente.

Error:

\name@lin-v01:/$ find /datadg/RND_Data/ldas/raw/hourly/ -type f -name 'NLDAS_VIC0125_H.*.grb \ -print0 | xargs -0 cp --target-directory=/datadg/rndFS/name/soilM
find /datadg/RND_Data/ldas/raw/hourly/ -type f -name 'NLDAS_VIC0125_H.*.grb \ -print | xargs -0 cp --target-directory=/datadg/rndFS/name/soilM
find: warning: Unix filenames usually don't contain slashes (though pathnames do).  That means that '-name 'NLDAS_VIC0125_H.*.grb \ -print | xargs -0 cp --target-directory=/datadg/rndFS/name/soilM\nfind /datadg/RND_Data/ldas/raw/hourly/ -type f -name NLDAS_VIC0125_H.*.grb'' will probably evaluate to false all the time on this system.  You might find the '-wholename' test more useful, or perhaps '-samefile'.  Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ 'NLDAS_VIC0125_H.*.grb \ -print | xargs -0 cp --target-directory=/datadg/rndFS/name/soilM\nfind /datadg/RND_Data/ldas/raw/hourly/ -type f -name NLDAS_VIC0125_H.*.grb''.
find: paths must precede expression:  -print
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
cp: missing file operand
Try 'cp --help' for more information.
    
por user3408139 11.07.2017 / 16:22

1 resposta

1

Leia e releia man find . Leia e releia man xargs find e xargs como resposta:

find /data/nldas/raw/hourly/ -type f -name 'NLDAS_VIC0125_H.*.grb' -print0 | xargs -0 cp --target-directory=/datag/name/soil

Observe que se houver dois arquivos NLDAS_VIC0125_H.*.grb com o MESMO nome (o '*' é o mesmo em ambos os casos), um será substituído no diretório de destino, a menos que você use a opção --backup=numbered para cp .

    
por waltinator 11.07.2017 / 16:30