É fácil com um loop:
for f in /etc/*.conf; do cp -v -- "$f" "$f.orig"; done
Parece que eu realmente não deveria precisar criar um script para isso. Eu gostaria de fazer algo cp /etc/*.conf $1.orig
ou cp /etc/{a.conf,b.conf} _firstarg_.orig
Existe uma maneira rápida e indolor de fazer isso?
Em qualquer shell, você pode usar um loop :
for x in /etc/*.conf; do cp -i -- "$x" "$x.orig"; done
(Remova -i
se você não se importar em sobrescrever arquivos existentes.)
Com zsh, você pode usar a função fornecida zcm
(coloque as três primeiras linhas no seu ~/.zshrc
):
autoload zmv
alias zcp='zmv -C'
alias zln='zmv -L'
zcp '/etc/(*.conf)' '/etc/$1.orig'
(Adicione -f
após zcp
para sobrescrever qualquer arquivo de destino existente.)