Como alias cp com cp -i por padrão

8

Existe uma boa maneira de alias de comando cp file1 file2para cp -i file1 file2?

James Shapiro
fonte
3
É uma ótima idéia alterar os comandos destrutivos como cp, mv e rm - mas não dependa disso ... especialmente não como raiz! Porque um dia você estará trabalhando em um computador sem o pseudônimo que espera e, se você se acostumar com o pseudônimo de detectar seus erros, terá um rude despertar.
Baard Kopperud

Respostas:

12

Você deve colocar um alias no seu script de inicialização:

alias cp='cp -i'

Você pode colocar isso diretamente ~/.bashrc, mas eu tenho no meu ~/.bashrc:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

e em ~/.bash_aliaseseu tenho:

alias realias='source ~/.bash_aliases'
alias cp='cp -i'
alias rm='rm -i'

e quando adicionei / mudei as coisas para esse arquivo que eu faço realias(que não remove aliases do shell em execução que você removeu, para esse uso unalias).

Se você fizer man bashe procurar aliases, não encontrará exemplos, mas:

For almost every purpose, aliases are superseded by shell functions
The (`bash`) shell function alternative for the above alias is:

cp () { command cp -i "$@" ; }

As funções shell são mais poderosas, mas para coisas simples em que os aliases são suficientes.
Eu ainda tendem a usá-los.

Anthon
fonte
2

Se você estiver usando o bash, as respostas de Anthon e michas funcionarão bem. No entanto, se você estiver usando csh ou tcsh, o comando a ser adicionado será

alias cp "cp -i"

e você o adicionará ao seu .cshrcarquivo.

desnatado
fonte
1
Alguém que é um novato Unix é provável que seja usando um bash-como o escudo, mas uma para a integralidade amor :)
um CVn
Obrigado Michael. No entanto, o novato trabalha no que quer que seja dado. E isso depende principalmente dos administradores do sistema. Curiosamente, em nosso campus, os alunos recebem csh (nem mesmo tcsh) como seu shell padrão trabalhando no Solaris. E como a postagem original dizia que o Unix era novato , achei que deveria adicionar pelo menos meus dois centavos.
unxnut
1
 alias cp="cp -i"

Coloque esta linha no seu script de inicialização do shell. (provavelmente ~ / .bashrc)

michas
fonte