Copie vários arquivos e anexe ao final do nome do arquivo

2

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?

    
por jphenow 07.04.2011 / 22:31

2 respostas

7

É fácil com um loop:

for f in /etc/*.conf; do cp -v -- "$f" "$f.orig"; done
    
por 07.04.2011 / 22:52
0

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.)

    
por 24.05.2011 / 00:31

Tags