如何默认到其他目录而不是主目录

Posted

技术标签:

【中文标题】如何默认到其他目录而不是主目录【英文标题】:How to default to other directory instead of home directory 【发布时间】:2011-10-24 10:23:57 【问题描述】:

我正在 Windows 机器上开发。我需要 linux 命令行的唯一地方是 Git Bash。问题是:当我打开它时,我在主目录中。我必须将目录更改为我的工作区,例如:

cd ../../../d/work_space_for_my_company/project/code_source

我可以将它包装在一个 .sh 文件中,这样我就不必再手动输入了吗?这应该很简单,但我对 Linux 命令行的了解为零。我真的很感激如果你能陪我走 通过如何创建该 .sh 文件。

【问题讨论】:

下面的答案对于永久修复此问题是正确的,但是即使没有这些,您也不应该每次都手动输入。 Git Bash 包含一个在会话之间持续存在的命令历史记录(与 Windows 控制台不同),因此无论何时您想要重复此命令,而不是再次键入它,只需键入 Ctrl-r,然后键入命令的一部分,例如。 ctrl-r../d 会出现命令,然后输入回车。一般来说,花几分钟时间来学习如何使用命令历史,然后你会经常使用它,因为你重复各种 git 命令。 仅供参考,这是 WSL bash 替代方案 C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "$SHELL:-bash"'(或者如果您使用 cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "$SHELL:-bash"'" -new_console:t:Data),其中 -i 使箭头键起作用 【参考方案1】:

这里有一个更类似于 Windows 的解决方案: 右键单击用于启动 git bash 的 Windows 快捷方式,然后单击属性。将“Start In”的值更改为所需的工作区路径。

编辑:还要检查 Target 值是否不包括 --cd-to-home 选项,如下面的 cmets 中所述。

【讨论】:

此解决方案的唯一问题是您没有设置主目录的默认路径,即使用~访问的路径 这对我有用。此外,我还必须删除启动命令中的 --cd-to-home 选项。 如果您将快捷方式固定在 Windows 7 任务栏上,您需要按照lifehacker.com/5475752/… 的建议右键单击该程序两次 同意这是最直接的解决方案,但绝对应该修改以包括删除目标中的“--cd-to-home”。如果没有最后的更改,您将始终默认使用 C:\Users[name] 文件夹(除非您已经修改了设置)。 澄清一下,在快捷方式中,“目标”应该是 %WINDIR%\System32\bash.exe,“开始”应该是 C:\Temp 或任何你想要的路径。【参考方案2】:

只需将该行写入文件“cd.sh”,然后在 shell 提示符下执行此操作:

. ./cd.sh

或者您可以在$HOME/.bashrc 文件中创建别名或函数:

foo()  cd /d/work_space_for_my_company/project/code_source ; 

如果目录名称包含空格或其他 shell 元字符,则需要引号;即使没有必要,添加它们也无妨:

foo()  cd "/d/Work Space/project/code_source" ; 

(请注意,我省略了../../..;你不需要它。)

编辑:如果你添加一行

foo

在函数定义之后到你的.bashrc,你的shell 将在那个目录中启动。或者,如果您以后不需要使用该功能,您可以直接在 .bashrc 中使用 cd 命令。

(名称foo 只是一个示例;您应该选择一个更有意义的名称。)

【讨论】:

正如@orip 指出的那样,您不妨在.bashrc 中执行cd。但是如果你把它变成一个函数,你可以稍后在你改变到另一个目录之后再次使用这个命令。 为了解释“../../..”,您给出的命令指定了相对于当前目录的路径; "../../../d/work_space_for_my_company/project/code_source" 从当前目录(恰好是$HOME)上升三个级别,然后下降到“d”,然后下降到“工作...”。 git bash shell 环境有"/d" 指的是Windows 调用的"D:\"。使用绝对路径名"/d/work_space_for_my_company/project/code_source" 更简单,并且不依赖于您的$HOME 恰好在哪里。 在哪里可以找到这个.bashrc 文件? @ptamzz:通常,当您设置帐户时,会在您的主目录中创建一个.bashrc 文件。如果没有,您可以自己创建。 你在哪里找到“cd.sh”?当你说主目录时。您是在谈论当前应用的主目录还是??【参考方案3】:

将该行添加到主目录中的.bashrc 文件中(如果该文件不存在,则创建该文件):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc

【讨论】:

我知道我参加聚会超级迟到了,但是谢谢你停止了废话! :) 这太完美了。转到我的.bashrc.local 并在底部添加cd ~/Desktop/repos/;。像魅力一样工作!更改.bashrc 的底部也可以。 我刚刚在 ~ 创建了 .bashrc 文件,下次我打开 git Bash 时它抱怨我没有 .bash_profile 和另一个文件,所以它为我创建了它们。在重新打开 git Bash 之后,它毫无作用! 去掉启动命令中的--cd-to-home选项(快捷方式属性) 我去了.bashrc 文件位置,打开它并更改我想默认打开 git bash 的(任何)路径。例如,我对cd "E:\first-folder\second-one\last-one-with-many-files" 进行了更改并开始工作(在按照上面的一些说明操作并在某些时候搞砸了)。【参考方案4】:

我使用ConEmu (在 Windows 上强烈推荐) 我有一个任务来启动 Git Bash 之类的

请注意底部的“启动目录...”按钮。它将-new_console:d:<path> 添加到 Git Bash 的启动命令中。让它指向你喜欢的任何地方

【讨论】:

感谢分享自定义任务,我无法让它工作。之后如何运行简单的 Windows 命令,例如 ping Google.com? @ImanMohamadi 对于这样的事情,我宁愿与您一起创建脚本,并将其添加到您的 PATH 环境变量 s.t.你可以执行诸如p-g 之类的cmds 来ping google 等...【参考方案5】:

这可能会对您有所帮助。

    右键单击 git bash -> 属性 在快捷方式选项卡中 -> 在字段中开始 -> 输入您的用户定义路径 确保 Target 字段不包含 --go-to-home,否则它将继续在 HOME 变量中指定的目录中启动

就是这样。

【讨论】:

我试过了,但是当路径在另一个驱动器中时它不起作用,比如 d:\projects\test Windows 10 没有为 git bash 显示该选项卡,但是您可以使用这 3 行小代码破解它,如果您双击bat 文件,然后它将在所需位置打开 Target字段,它没有参数。默认情况下包含 -go-to-home 必须从那里删除才能正常工作。 它适用于我目标:“C:\Program Files\Git\git-bash.exe”(重要)开始于:d:/xampp/htdocs/ 它也适用于与@raftaar1191 相同的目标(我删除了“--cd-to-home”选项),并且我将“start in”行配置为“C:\ wamp\www",非常有用!【参考方案6】:

我也只是将快捷方式图标的“开始”设置更改为:%HOMEDRIVE%/xampp/htdocs/

【讨论】:

【参考方案7】:

(请阅读下面的警告)

在 Windows 中执行此操作的非常简单的方法(与 git bash 一起使用,可能还有其他方法)是创建一个名为 HOME 的环境变量,它指向您想要的主目录。

    右击我的电脑,选择属性 选择高级系统设置(位置因 Windows 版本而异) 在系统属性中,选择高级选项卡 在高级选项卡上,选择环境变量(底部按钮) 在“系统变量”下检查您是否已经有一个名为 HOME 的变量。如果是这样,请通过突出显示变量名称并单击编辑来编辑该变量。将新变量名设为所需的路径。 如果 HOME 尚不存在,请单击系统变量下的“新建”并创建一个名为 HOME 的新变量,其值为所需的路径。

注意:这可能会改变其他事情的工作方式。例如,对我来说,它改变了我的 .ssh 配置文件所在的位置。就我而言,我希望我的家是 U:\,因为这是我放置项目工作和应用程序设置的主要位置(即它确实是我的“主”目录)。

编辑 2017 年 6 月 23 日:这个答案继续得到偶尔的支持,我想警告人们,虽然这可能“有效”,但我同意 @AnthonyRaymond 不推荐这样做。如果您不在乎其他事情是否损坏,这更多是临时修复或修复。改变你的家不会造成主动损坏(比如删除你的硬盘),但它可能会在以后引起阴险的烦恼。当你开始遇到烦人的问题时,你可能不会记得这个变化......所以你以后可能会摸不着头脑!

【讨论】:

我不明白为什么@asalle 建议的编辑(主要是建议您也可以编辑用户系统变量)被拒绝 Bamsworld fish_ball 和 greg-449,编辑似乎合理。 这是一种破坏性太大的方式,不是一个好主意。它会影响许多其他应用程序甚至窗口。不推荐 @AnthonyRaymond 正如我所指出的,更改“HOME”可能会产生其他后果,但我不会说它必然具有破坏性。事实上,如果您希望您的 HOME 是一个特定的位置,或者如果另一个应用程序将 HOME 设置为一个不想要的位置,这可能是有益的。无论如何,我认为这个答案有助于了解如何设置默认目录。 @AnthonyRaymond 尽管我同意,但在这个问题的背景下,将某个特定项目(例如../../../d/work_space_for_my_company/project/code_source)设置为一个坏主意。不过一般来说,有时候 HOME 不需要是 /c/Users/[current user name]/ 如果你想让一个特殊文件夹指向另一个位置,请创建符号链接。 technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx 不知道哪个程序使用了 HOME 变量,我觉得有点破坏性。【参考方案8】:

假设您希望每次打开命令行时都发生这种情况:

echo cd ../../../d/work_space_for_my_company/project/code_source >> ~/.bashrc

现在,当您打开 shell 时,它将从主目录向上移动三个目录并更改为 code_source。

此代码只是将行“cd ../../../d/work_space_for_my_company/project/code_source”附加到名为“.bashrc”的文件中。如果文件不存在,“>>”会创建一个文件,然后追加。 .bashrc 文件可用于在启动/登录时运行命令(即加载模块等)

【讨论】:

【参考方案9】:

右键单击 Git Bash 应用程序链接,转到“属性”并将“开始位置”修改为您希望它开始的位置。

【讨论】:

【参考方案10】:

来自 Windows 10

中的固定开始菜单项
    打开固定快捷方式的文件位置 打开快捷方式属性
      删除--cd-to-homearg 更新Start in路径
    通过最近添加的方式重新固定到开始菜单


感谢所有其他有关如何执行此操作的答案!想提供 Win 10 说明...

【讨论】:

【参考方案11】:

对于 Windows:按照以下步骤操作-

    转到 Windows 主页> 右键单击​​“Git Bash”应用程序。 属性> 快捷方式 更改这两个设置: (a) 从target中删除--cd-to-home (b) 在“Start in”中输入你想以 git 开头的文件夹路径。

这对我有用:)

【讨论】:

【参考方案12】:

如果你想在你打开 GIT bash 时有项目选择列表

将代码头中的ppath 编辑到您的git 项目path,将此代码放入.bashrc 文件并将其复制到您的$HOME dir(在 Win Vista / 7 中通常是 c:\Users\$YOU

#!/bin/bash
ppath="/d/-projects/-github"
cd $ppath
unset PROJECTS
PROJECTS+=(".")
i=0

echo
echo -e "projects:\n-------------"

for f in *
do
    if [ -d "$f" ]
    then
        PROJECTS+=("$f")
        echo -e $((++i)) "- \e[1m$f\e[0m"
    fi
done


if [ $#PROJECTS[@] -gt 1 ]
then
    echo -ne "\nchoose project: "
    read proj
    case "$proj" in
        [0-`expr $#PROJECTS[@] - 1`]) cd "$PROJECTS[proj]" ;;
        *) echo " wrong choice" ;;
    esac
else
    echo "there is no projects"
fi
unset PROJECTS
您可能希望在 GIT bash chmod +x .bashrc 中将此文件设置为可执行文件(但它可能是多余的,因为此文件存储在 ntfs 文件系统)

【讨论】:

【参考方案13】:

当我将 cd 放入工作目录 ~/.bashrc 时,我在 Windows 上的 Git Bash 快捷方式报错了

WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.

This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.

所以 git 创建了这个 .bash_profile:

$ cat ~/.bash_profile
# generated by Git for Windows
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc

哪个工作。

或者,您可以再次删除 .bashrc 并将 cd 命令放入 .bash_profile:

$ rm ~/.bashrc
$ echo "cd Source/Repos" >~/.bash_profile

$ cat ~/.bash_profile
cd Source/Repos

完成此操作后,您可以关闭窗口并使用桌面快捷方式重新打开它,提示将告诉您您的位置现在是您想要的位置 - 看起来这是我的情况:

Administrator@raptor1 MINGW64 ~/Source/Repos
$

【讨论】:

【参考方案14】:

如果您键入此命令: echo cd d:/some/path >> ~/.bashrc

cd d:/some/path 行附加到.bashrc>> 如果文件不存在则创建一个文件,然后追加。

【讨论】:

【参考方案15】:

必须是cd d:/work_space_for_....

没有: 它对我不起作用

【讨论】:

【参考方案16】:

Windows 用户的另一个解决方案是将 Git Bash.lnk 文件复制到您需要启动的目录并从那里启动它。

【讨论】:

以上是关于如何默认到其他目录而不是主目录的主要内容,如果未能解决你的问题,请参考以下文章

如何快速切换到用户john的主目录下

linux如何修改用户主目录

如何在 Linux 中将主目录移动到新分区或磁盘?

Linux系统修改jenkins默认主目录

jenkins 更换主数据目录

git 将系统配置文件视为主目录而不是用户主文件夹(Windows 7)