deseja copiar vários arquivos * .txt de vários diretórios para o mesmo diretório, mas renomeie o novo arquivo

1

Eu tenho pelo menos 2-3 * .txt arquivos dentro de várias centenas de diretórios. O que eu preciso é: 1. Copie o * .txt de cada diretório para o mesmo diretório, mas renomeando o nome do arquivo para * _name.txt (* deve ser o nome original do .txt e a string "name" é a mesma para todos arquivos recém-copiados. Posso usar o pax para isso? Se sim, como?

    
por Sameer 04.01.2017 / 16:28

1 resposta

2

Isso não usa pax , mas é uma maneira bastante direta de obter o que você precisa, feito:

IFS="\n"
for file in *.txt; do
    cp -- "$file" "${file%.txt}_name.txt"
done

A construção ${var%suffix} removerá suffix do final do valor de $var ; isso é usado para remover a extensão do arquivo.

    
por 04.01.2017 / 16:41

Tags