Como posso copiar (ou mover) e renomear vários arquivos de diferentes diretórios usando o comando unix cp?

0

Digamos que sob este diretório:      /home/data/

Existem 100 pastas, o nome dessas pastas é 24538_7#1 , 24538_7#2 , 24538_7#3 ... para 24538_7#384 .

Em cada pasta, existem muitos arquivos e pastas.

Os nomes do arquivo desejado em cada pasta são Aligned.out.sam A pasta desejada para arquivos renomeados é /home/SAM

Como posso copiar todos esses arquivos para a nova pasta ( /home/SAM ) e renomeá-los corretamente como 24538_7#1.sam , 24538_7#2.sam , 24538_7#3.sam ......?

Eu tentei fazer isso pelo comando abaixo, mas não funcionou:

mv /home/data/*/Aligned.out.sam /home/SAM/*.sam

    
por Akhil Verma 13.06.2018 / 18:28

1 resposta

1

Algo ao longo das linhas de

for sam in */Aligned.out.sam; do \
  name=$(basename $(dirname "$sam")) \
  cp "$sam" "/home/SAM/$name.sam" \
done

pode fazer o truque

    
por 13.06.2018 / 18:33