Как псевдоним cp с cp -i по умолчанию

8

Есть хороший способ псевдоним команды , cp file1 file2чтобы cp -i file1 file2?

Джеймс Шапиро
источник
3
Это хорошая идея для псевдонимов деструктивных команд, таких как cp, mv и rm - но не зависите от этого ... особенно от имени root! Потому что однажды вы будете работать за компьютером без того псевдонима, который ожидаете, и если вы потом привыкнете к псевдониму, улавливающему ваши ошибки, вас ждет грубое пробуждение.
Баард Копперуд

Ответы:

12

Вы должны поместить псевдоним в свой скрипт запуска:

alias cp='cp -i'

Вы можете вставить это непосредственно ~/.bashrc, но у меня есть в моем ~/.bashrc:

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

и у ~/.bash_aliasesменя есть:

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

и когда я добавляю / изменяю вещи в этот файл, который я делаю realias(это не удаляет псевдонимы из запущенной оболочки, которую вы вынесли для этого использования unalias).

Если вы делаете man bashи ищете псевдонимы, вы не найдете примеров, но:

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

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

Функции оболочки более мощные, но для простых вещей, где достаточно псевдонимов.
Я все еще склонен использовать их.

Энтон
источник
2

Если вы используете bash, ответы Anthon и michas будут работать нормально. Однако, если вы используете csh или tcsh, команда для добавления будет

alias cp "cp -i"

и вы добавите его в свой .cshrcфайл.

unxnut
источник
1
Кто-то, кто является новичком Unix, вероятно, будет использовать оболочку, похожую на bash, но +1 для полноты ради :)
CVn
Спасибо, Майкл. Тем не менее, новичок работает во всем, что дано. И это зависит в основном от системных администраторов. Интересно, что в нашем кампусе студенты получают csh (даже не tcsh) в качестве оболочки по умолчанию, работающей на Solaris. И поскольку в первоначальной публикации говорилось о новичке в Unix , я решил, что мне нужно хотя бы добавить свои два цента.
unxnut
1
 alias cp="cp -i"

Поместите эту строку в ваш скрипт запуска оболочки. (вероятно ~ / .bashrc)

Михась
источник