Uma função seria mais apropriada.
Em conchas semelhantes a Bourne:
place() { cp -- "$1" /home/matt/thefile; }
Em shells que não sejam bash
, yash
e posh
, você pode simplificá-lo para:
place() cp -- "$1" /home/matt/thefile
Em fish
:
function place
cp -- $argv[1] /home/matt/thefile
end
em rc
/ es
:
fn place {
cp -- $1 /home/matt/the/file
}
É em (t)csh
que você precisa usar um alias
, pois esses shells não têm funções (também é csh
que introduziu aliases em primeiro lugar). Em (t)csh
, você pode usar a substituição de histórico para permitir que algum tipo de argumento passe para aliases.
alias place 'cp -- \!:1 /home/matt/the/file'
Quando chamado como place myfile.txt
, eles copiam myfile.txt
para ~/thefile
Se você quisesse algo que funcionasse independentemente do shell do usuário, em vez de adicionar uma função / alias específica do shell ao arquivo de personalização do shell, criaria um script que você adicionaria em um diretório que está em seu caminho de pesquisa de comando. Algo como:
#! /bin/sh -
exec cp -- "${1?Please give the file to copy as argument}" /home/matt/thefile