我已经使用 linux 控制台有一段时间了。让我恼火的一件事是,每次我使用创建一个新目录时,mkdir
我都必须cd
更改它。是否有一个命令解决方案可以创建并切换到刚刚创建的目录?
现在我做:
mkdir php5
cd php5
我可不可以做:
mkdir -someswitch php5
我想要一些简单而干净的东西。一个很好的例子是git branch somebranch
创建新分支以及git checkout -b somebranch
创建并切换到新分支。
执行此操作的可移植方法是使用 shell 函数,而不是 bash 函数(使用 bashim 之类的function
)。把它放在相关.profile
的交互式使用中:
mkdir () {
case $1 in
(-c) command mkdir -p "$2" && cd "$2";;
(*) command mkdir "$@";;
esac
}
这增加了交互使用的-c
选项mkdir
。如果没有-c
该实用程序,它会像往常一样运行。 - 请注意引用,"$2"
因此这适用于名称中带有空格的目录。
没有什么能阻止您创建自己的别名或小脚本
mkdir $1 && cd $1
或者你可以使用';' 分隔命令,例如:
mkdir php5.3 ; 光盘 php5.3
发现了一些魔法:
mkdir foo && cd $_
一个可以提供帮助的接近答案。它很容易打字。
mkdir php7 && cd !$
这是我一直在使用的,不确定它是否是最佳实践,但它有效。
function mk() {
$file = $args[0]
mkdir $file | cd
}
您可以在 bash 中定义一个函数来执行此操作:
function mkcd() {
mkdir $1 && eval cd $1
}