Функция была бы более подходящей.
В Борне -как снаряды:
place() { cp -- "$1" /home/matt/thefile; }
В оболочках, отличных от bash
, yash
и posh
, вы можете упростить его до:
place() cp -- "$1" /home/matt/thefile
Вfish
:
function place
cp -- $argv[1] /home/matt/thefile
end
в rc
/es
:
fn place {
cp -- $1 /home/matt/the/file
}
Именно в (t)csh
вам нужно будет использовать alias
, так как эти оболочки не имеют функций (это также csh
, которые в первую очередь ввели псевдонимы ). В (t)csh
вы можете использовать подстановку истории, чтобы разрешить передачу какого-либо аргумента псевдонимам.
alias place 'cp -- \!:1 /home/matt/the/file'
При вызове как place myfile.txt
они копировали myfile.txt
в ~/thefile
Если вам нужно что-то, что работает независимо от оболочки пользователя, а не добавление специальной функции/псевдонима оболочки -в свой файл настройки оболочки, вы должны создать сценарий, который вы добавите в каталог, который находится в их пути поиска команд. Что-то вроде:
#! /bin/sh -
exec cp -- "${1?Please give the file to copy as argument}" /home/matt/thefile
|
не является командой. Так что это невозможно.
Но вы можете имитировать то, что хотите, используя history
и злоупотребляя $PS1:
PS1="$PS1"'`(date;history | tail -n1 | perl -ne "s/\|.*// and print") >> ~/pipe.log`'