Cómo alias cp con cp -i por defecto

8

¿Hay una buena manera de alias de comando cp file1 file2a cp -i file1 file2?

James Shapiro
fuente
3
Es una gran idea alias comandos destructivos como cp, mv y rm, pero no dependa de él ... ¡especialmente no como root! Porque un día estarás trabajando en una computadora sin el alias que esperas, y si te has acostumbrado al alias para detectar tus errores, te encontrarás con un rudo despertar.
Baard Kopperud

Respuestas:

12

Deberías poner un alias en tu script de inicio:

alias cp='cp -i'

Puedes poner esto directamente ~/.bashrc, pero tengo en mi ~/.bashrc:

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

y en ~/.bash_aliasestengo:

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

y cuando agregué / cambié cosas a ese archivo, lo hago realias(eso no elimina los alias del shell en ejecución que ha eliminado, para ese uso unalias).

Si lo hace man bashy busca alias, no encontrará ejemplos pero:

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

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

Las funciones de shell son más potentes, pero para cosas simples donde los alias son suficientes.
Todavía tiendo a usarlos.

Anthon
fuente
2

Si está utilizando bash, las respuestas de Anthon y michas funcionarán bien. Sin embargo, si está utilizando csh o tcsh, el comando para agregar será

alias cp "cp -i"

y lo agregará a su .cshrcarchivo.

unxnut
fuente
1
Es probable que alguien que es un novato de Unix esté usando un shell similar a bash, pero +1 por completo :)
un CVn
Gracias michael Sin embargo, el novato trabaja en lo que se le da. Y eso depende principalmente de los administradores del sistema. Curiosamente, en nuestro campus, los estudiantes obtienen csh (ni siquiera tcsh) como su shell predeterminado que funciona en Solaris. Y dado que la publicación original decía novato de Unix , pensé que debería agregar al menos mis dos centavos.
unxnut
1
 alias cp="cp -i"

Pon esta línea en tu script de inicio de shell. (probablemente ~ / .bashrc)

michas
fuente