每当我创建一个新文件夹时,我可以向我的bash配置文件添加命令吗?

时间:2015-11-18 01:26:53

标签: bash cd

我一直在创建命令,将我带到我想要在其中工作的文件夹,这很棒,但...... 每当我创建一个新文件夹时,有没有办法自动添加命令? 例如,我在我的comp上创建了一个文件夹,这会被添加到我的bash配置文件中:

alias foldername ='cd / Applications / MAMP / htdocs / foldername / wp-content / themes / foldername'

我在Mac上;埃尔卡皮坦。

4 个答案:

答案 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'

您可以尝试一下,看看它是否符合您的需求。