Bash: псевдонимы
Очень полезно в файле ~/.bashrc
определить псевдонимы (aliases) для некоторых часто используемых команд. Псевдоним -- это просто некоторое условное имя, подменяющее определённую команду с теми её опциями, которые мы используем чаще всего. Причём, что характерно, псевдоним команды может совпадать с ее именем. То есть, например, -- набирая просто ls
, мы получаем список файлов не в умолчальном формате, а в том, в каком нам угодно было пожелать.
Устанавливаются псевдонимы одноименной командой alias
, в качестве аргументов которой выступают имя псевдонима и его значение, соединенные оператором присваивания (именуемым в просторечии знаком равенства). А именно, если мы хотим ныне, и присно, и во веки веков видеть вывод команды ls
в цвете, нам достаточно вписать в конфиг bash такой псевдоним:
$ alias ls='ls --color=auto'
Вспомним команды типа cp
и mv
, которыми мы можем скопировать или переместить какие-то файлы из каталога в каталог. А что произойдет, если чисто случайно в целевом каталоге уже имеются файлы, одноимённые копируемым/перемещаемым? Произойдёт штука, могущая иметь весьма неприятные последствия: файлы в целевом каталоге будут заменены новыми, теми, что копируются туда или перемещаются. То есть исходное содержание этих файлов будет утрачено -- и утрачено безвозвратно.
Разумеется, иногда так и нужно: например, при резервном копировании старые версии файлов и должны быть заменены более свежими их вариантами. Однако такое приемлемо далеко не всегда. И потому в большинстве команд, связанных с необратимыми изменениями файловой системы, предусматривается специальная опция -- -i
(или --interactive
). Если задать эту опцию с командой cp
или mv
, то при совпадении имен исходного и целевого файлов будет запрошено подтверждение на выполнение соответствующего действия. И, дабы не держать в голове необходимость опции -i
, для команд cp
и mv
(а также для команды rm
, эта операция также практически необратима) целесообразно определить одноимённые им псевдонимы примерно такого вида:
$ alias cp='cp -i'alias mv='mv -i'alias rm='rm -i'
Но что, если заведомо известно, что сотни, а то и тысячи файлов целевого каталога должны быть именно переписаны новыми своими версиями? В этом случае можно прибегнуть к опции -f
(или --force
). Которая, будучи введённой в командной строке, отменяет действие опции -i
из конфига, и предписывает принудительно переписать все файлы целевого каталога их обновлёнными тезками. И никто не мешает нам на этот случай создать ещё один псевдоним для команды cp
, например:
$ alias cpf='cp -f'
Второй способ временно избавиться от подтверждения на копирование или удаление файлов -- просто отменить псевдоним. Что делается командой -- unalias
. То есть, дав директиву
$ unalias cp
мы вернем команде копирования её первозданный смысл. Ну а узнать, какие псевдонимы у нас определены в данный момент, и каковы их значения, ещё проще: команда
$ alias
без опций и аргументов выведет полный их список.
Главная
Содержание . .