Вам нужно что-то вроде:-
CP() { [ $# == 1 ] && cp "$@" . || cp "$@"; }
alias cp=CP
Они могут быть добавлены в ~/.bashrc
если вы хотите полупостоянное изменение.
Обратите внимание, что псевдоним не будет работать в скрипте: если вам нужно изменение, которое будет работать в скриптах, после проверки местоположения реального cp
, вы можете использовать личный каталог $HOME/bin
в начале вашего списка $PATH
и в нем создайте исполняемый скрипт cp
содержащий: -
/bin/bash
[ $# == 1 ] && /bin/cp "$@" . || /bin/cp "$@"
Вам нужно будет добавить export PATH=$HOME/bin:$PATH
в ~/.bashrc
Также обратите внимание, что любые параметры перед первым файлом приведут к аннулированию теста для одного параметра. Вам нужно будет отсканировать параметры в функции, чтобы проверить, не находятся ли параметры, начинающиеся с -
, остановить тест в точке --
, а затем убедиться, что остался только один параметр.