Come alias cp con cp -i di default


8

C'è un buon modo per alias il comando cp file1 file2di cp -i file1 file2?


3
È un'ottima idea alias comandi distruttivi come cp, mv e rm - ma non dipendere da esso ... soprattutto non come root! Perché un giorno lavorerai su un computer senza l'alias che ti aspetti e se poi ti abituerai all'alias che coglie i tuoi errori, avrai un brusco risveglio.
Baard Kopperud,

Risposte:


12

Dovresti inserire un alias nello script di avvio:

alias cp='cp -i'

Puoi inserirlo direttamente ~/.bashrc, ma ho nel mio ~/.bashrc:

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

e in ~/.bash_aliasesho:

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

e quando ho aggiunto / modificato cose in quel file lo faccio realias(che non rimuove gli alias dalla shell in esecuzione che hai rimosso, a tale scopo unalias).

Se lo fai man bashe cerchi gli alias non troverai esempi ma:

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

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

le funzioni della shell sono più potenti, ma per cose semplici in cui gli alias sono sufficienti.
Tendo ancora ad usarli.


2

Se stai usando bash, le risposte di Anthon e michas funzioneranno bene. Tuttavia, se si utilizza csh o tcsh, il comando da aggiungere sarà

alias cp "cp -i"

e lo aggiungerai nel tuo .cshrcfile.


1
Qualcuno che è un novizio Unix probabilmente utilizzerà una shell simile a una bash, ma +1 per completezza 's sa :)
un CVn

Grazie Michael. Tuttavia, il principiante lavora in tutto ciò che viene dato. E questo dipende principalmente dagli amministratori di sistema. È interessante notare che nel nostro campus gli studenti ottengono csh (nemmeno tcsh) poiché la loro shell predefinita funziona su Solaris. E dal momento che il post originale diceva novizio Unix , ho pensato che avrei dovuto aggiungere almeno i miei due centesimi.
Unxnut

1
 alias cp="cp -i"

Inserisci questa riga nello script di avvio della shell. (probabilmente ~ / .bashrc)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.