如何默认到其他目录而不是主目录
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-home
arg
更新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 文件复制到您需要启动的目录并从那里启动它。
【讨论】:
以上是关于如何默认到其他目录而不是主目录的主要内容,如果未能解决你的问题,请参考以下文章