-
Com a localização:
find . -type f -name '*2014*' -exec bash -c 'cp "$0" "${0/2014/2015}"' {} \;
-
No loop do shell:
for file in *2014*; do cp "$file" "${file/2014/2015}" done
Como posso copiar muitos arquivos no mesmo diretório substituindo o ano em seu nome?
Eu tenho isso (pode ser diferente nome do arquivo e extensões):
filename1-2014.ext
filename2-2014.ext
filename3-2014.ext
...
filenamen-2014.ext
E eu quero isso:
filename1-2014.ext
filename1-2015.ext
filename2-2014.ext
filename2-2015.ext
filename3-2014.ext
filename3-2015.ext
...
filenamen-2014.ext
filenamen-2015.ext
Eu posso fazer um script para fazer isso, mas eu estou querendo saber se existe uma maneira fácil de fazer isso?
for i in *-2014.ext; do
cp "$i" "${i%2014.ext}2015.ext"
done
Para cada arquivo, remova o sufixo antigo e adicione o novo.
Se você tem diferentes extensões, você pode usar o recurso de substituição de padrões do bash:
for i in *-2014.*; do
cp "$i" "${i/2014/2015}"
done