How do I include parameters in a bash alias?

Andrey Fedorov picture Andrey Fedorov · Nov 30, 2009 · Viewed 8.2k times · Source

Trying to create:

alias mcd="mkdir $1; cd $1"

Getting:

$ mcd foo
usage: mkdir [-pv] [-m mode] directory ...
-bash: foo: command not found

What am I doing wrong?

Answer

just somebody picture just somebody · Nov 30, 2009

An alias can only substitute the first word of a command with some arbitrary text. It can not use parameters.

You can instead use a shell function:

mcd()
{
  test -e "$1" || mkdir "$1"
  cd "$1"
}