我一直在创建命令,将我带到我想要在其中工作的文件夹,这很棒,但...... 每当我创建一个新文件夹时,有没有办法自动添加命令? 例如,我在我的comp上创建了一个文件夹,这会被添加到我的bash配置文件中:
alias foldername ='cd / Applications / MAMP / htdocs / foldername / wp-content / themes / foldername'
我在Mac上;埃尔卡皮坦。
答案 0 :(得分:1)
您可以在.bashrc
:
# Changes directory to project in htdocs
function project () {
cd "/Applications/MAMP/htdocs/$1"
}
一旦您获得了bashrc或启动了一个新的shell,您就可以使用
导航到htdocs的子文件夹project FOLDER_NAME
答案 1 :(得分:1)
如果您愿意安装较新版本的bash
(例如通过Homebrew),您可以设置autocd
选项。
$ shopt -s autocd
$ pwd
/Users/me
$ mkdir foo
$ foo
cd foo
$ pwd
/Users/me/foo
如果您愿意更改shell,则Mac OS X附带的zsh
版本具有相同名称的选项。
% setopt autocd
% pwd
/Users/me
% mkdir foo
% foo
% pwd
/Users/me/foo
答案 2 :(得分:1)
您也可以使用CDPATH
环境变量进行此类操作(假设您的目标目录位于公共目录(或三个)下。
来自cd
的POSIX规范:
CDPATH
引用目录的<冒号>分隔的路径名列表。 cd 实用程序在尝试更改目录时应使用此列表,如描述中所述。用于替换目录路径名的空字符串表示当前目录。如果未设置 CDPATH ,则应将其视为空字符串。
因此,如果您设置CDPATH=.:/Applications/MAMP/htdocs/foldername/wp-content/themes
,那么您可以在任何地方使用cd foldername
转到/Applications/MAMP/htdocs/foldername/wp-content/themes/foldername
...当然假设目录中没有foldername
在您当前的目录中(如果您希望它也适用于此目的,您需要反转CDPATH
中项目的顺序。)
答案 3 :(得分:0)
注释中引用的另一种方法是创建一个创建和更改目录的简单函数。别名为mdcd
,只会创建并成功创建对目录的更改。我在~/.bashrc
:
mkdircd ()
{
[ -z "$1" ] && {
printf "usage: mdcd <dir>\n";
return 1
}
mkdir -p "$1" && cd "$1" || {
printf "error: unable to create directory '%s'\n" "$1";
return 1
}
return 0
}
...
alias mdcd='mkdircd'
您可以尝试一下,看看它是否符合您的需求。