Usando o shell, você pode fazer assim:
find *_CSF -type f -iname "*.fastq" -exec cp {} dir1_CSF/ \;
Eu quero copiar todos os arquivos .fastq de todos os subdiretórios que terminem em '_CSF' em outro subdiretório já criado, dir1_CSF.
Eu entendo como copiar certos arquivos, mas não de certos diretórios.
Novo no shell de scripts, seria ótimo para alguma assistência.
Usando o shell, você pode fazer assim:
find *_CSF -type f -iname "*.fastq" -exec cp {} dir1_CSF/ \;
Defina DIR como o diretório de nível superior e TARGET é o seu diretório de destino. Então corra:
find $DIR \( -type d -name "$TARGET" -prune \) -o \
\( -type f -name "*.fastq" -exec cp -t "$TARGET" {} + \)
Sim, esse é o comando. Isso está supondo que o GNU encontre e os utilitários de arquivo GNU, como cp
, que fornece o parâmetro -t
útil para esses casos.
O comando find
inicia com $DIR
(qualquer que seja a sua configuração), localiza todos os arquivos correspondentes à sua extensão (mas exclui qualquer coisa abaixo do diretório $TARGET
). Em seguida, ele passa todos os nomes de arquivos para o programa cp
.
Tags directory cp shell-script