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


180

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

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

我可以将其包装在.sh文件中,这样就不必手动键入了吗?这应该很简单,但是我对Linux命令行的知识为零。如果您能引导我逐步了解如何创建该.sh文件,我将不胜感激。


5
下面的答案是永久解决此问题的正确方法,但是即使没有这些答案,您也不应该每次都手动输入。Git Bash包含一个在会话之间保留的命令历史记录(与Windows控制台不同),因此,只要您想重复此命令,而不是再次键入它,只需键入Ctrl-r,然后键入命令的一部分即可。ctrl-r../d命令将出现,然后键入Enter。通常,花一些时间来学习如何使用命令历史记录,然后在重复各种git命令时会大量使用它。
Stephen Hosking

仅供参考,这是使箭头键起作用的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
KCD

Answers:


101

只需将该行写入文件“ 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会在该目录中开始。或者cd.bashrc如果您以后不需要使用该功能,则可以直接在您的命令中使用该命令。

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


5
正如@orip所指出的,您也可以只cd在.bashrc中执行。但是,如果将其设置为函数,则可以在更改到另一个目录之后再次使用该命令。
基思·汤普森

2
为了解释“ ../../ ..”,您给出的命令指定了相对于当前目录的路径。"../../../d/work_space_for_my_company/project/code_source"从您当前的目录(恰好是$HOME)上升到三个级别,然后下降到“ d”,然后下降到“ work ...”。git bash shell环境已"/d"引用Windows所调用的内容"D:\"。使用绝对路径名更加"/d/work_space_for_my_company/project/code_source"简单,并且不取决于您$HOME碰巧在哪里。
基思·汤普森

2
在哪里可以找到此.bashrc文件?
ptamzz '02

2
@ptamzz:通常,.bashrc在设置帐户后会在您的主目录中创建一个文件。如果没有,您可以自己创建它。
基思·汤普森

1
您在哪里找到“ cd.sh”?而当您说主目录时。您是在谈论当前应用程序的主目录还是??
WowBow 2012年

374

这是Windows风格的解决方案:右键单击用于启动git bash的Windows快捷方式,然后单击“属性”。将“开始于”的值更改为所需的工作空间路径。

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


13
此解决方案的唯一问题是,您没有设置主目录的默认路径,~
而是

67
这对我有用。此外,我还必须在启动命令中删除--cd-to-home选项。
ChinLoong 2015年

2
如果你有固定的Windows 7任务栏上的快捷方式,你需要右键点击两次的程序,通过建议lifehacker.com/5475752/...
马纳特

11
同意这是最直接的解决方案,但绝对应进行修改,以包括删除目标中的“ --cd-to-home”。没有最后的更改,您将始终默认使用C:\ Users [name]文件夹(除非您修改了该设置)。
Zeus56 '16

2
为了明确起见,在快捷方式中,“目标”应为%WINDIR%\System32\bash.exe,“开始于”应为C:\Temp或您想要的任何路径。
demoncodemonkey

45

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

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

5
我知道我参加晚会太晚了,但是感谢您停止废话!:)
费利佩·杰拉德

1
太完美了 去我的,.bashrc.local并添加cd ~/Desktop/repos/;到底部。像魅力一样工作!更改底部 .bashrc也可以。
迈克尔·迪米特

我只是在〜时创建了.bashrc文件,下次打开git Bash时,它抱怨我没有.bash_profile和另一个文件,因此它为我创建了它们。重新打开git Bash后,它无法正常工作!
Pini Cheyni '17

删除启动命令中的--cd-to-home选项(快捷方式属性)
telebog

38

我使用ConEmu (在Windows上强烈建议使用),在那里我有一个启动Git Bash的任务,例如

在此处输入图片说明

注意底部的“启动目录...”按钮。它-new_console:d:<path>在Git Bash的启动命令中添加了一个。使其指向您喜欢的任何地方


感谢您分享自定义任务,我无法正常工作。之后,如何运行简单的Windows命令,例如ping Google.com?
伊曼·穆罕默迪

1
@ImanMohamadi对于这样的事情,我宁愿创建脚本并与您将其添加到PATH env变量中,以便您可以执行p-gping Ping google等的
cmd

23

这可能对您有帮助。

图片说明

  1. 右键单击git bash->属性
  2. 在“快捷方式”选项卡->“开始于”字段中->输入用户定义的路径
  3. 确保“目标”字段不包括在内--go-to-home,否则它将继续在HOME变量中指定的目录中开始

而已。


我试过了,但是当路径在另一个驱动器(例如d:\ projects \ test)中时,它不起作用
Ray Ray

的Windows 10不显示的git bash的那个标签,但你可以使用这个小3行代码在一些** bat文件破解它,保存它。 1. d: 2. cd data 3.git bash如果你双击bat文件,然后它会在需要的位置打开
Krish

1
查看该Target字段,它没有参数。默认情况下,包含的-go-to-home内容必须从那里擦除才能起作用。
Kurapika

1
适用于我的目标:“ C:\ Program Files \ Git \ git-bash.exe”(重要)开始于:d:/ xampp / htdocs /
raftaar1191 2009年

1
它对我也适用,目标与@ raftaar1191相同(我删除了“ --cd-to-home”选项),并且将“ start in”行配置为“ C:\ wamp \ www”,非常有用!
nayfun

10

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


9

假设您希望每次打开命令行时都发生这种情况,将执行此操作:

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

现在,当您打开外壳程序时,它将从主目录上移三个目录并更改为code_source。

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


9

(请阅读下面的警告)

在Windows中执行此操作的最简单方法(与git bash一起使用,可能与其他工具一起使用)是创建一个名为HOME的环境变量,该变量指向所需的主目录。

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

环境变量

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

编辑2017年6月23日:此答案偶尔仍然会受到批评,我想警告人们,尽管这可能“奏效”,但我同意@AnthonyRaymond的观点,不建议这样做。这更像是一个临时修复程序,或者是一个修复程序,如果您不在乎其他事情是否中断。更换房屋不会造成主动损害(例如删除硬盘驱动器),但以后可能会引起隐患。当您确实开始遇到烦人的问题时,您可能不会记得这种变化...因此,您以后可能会挠头!


我不明白为什么@asalle建议的编辑(主要是建议您也可以编辑用户系统变量)为什么被Bamsworld fish_ball和greg-449拒绝,所以这些编辑似乎是合理的。
祖纳拉玛

这是一个太多破坏性的方法,不是一个好主意。它会影响许多其他应用程序甚至Windows。不推荐
Anthony Raymond

@AnthonyRaymond正如我指出的那样,更改“ HOME”可能会导致其他后果,但是我不会说它一定具有破坏性。实际上,如果您希望将HOME设置为特定位置,或者另一个应用程序将HOME设置为不希望的位置,则可能会有所帮助。无论如何,我认为这个答案为默认目录的设置提供了一些启示。
geneorama

@AnthonyRaymond尽管我同意,但是在这个问题的背景下,将某个特定项目(例如../../../d/work_space_for_my_company/project/code_source)置身于一个坏主意。总体而言,虽然有时候并不需要一定要/c/Users/[current user name]/
回家

如果要使特殊文件夹指向另一个位置,请创建符号链接。technet.microsoft.com/zh-cn/library/cc753194(v=ws.11).aspx我们无法知道哪个程序使用HOME变量,因为我觉得它有点破坏性。
Anthony Raymond

7

右键单击Git Bash应用程序链接,转到“属性”,然后将“起始位置”修改为您要从其开始的位置。


5

Windows 10中的固定开始菜单项

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

打开文件位置屏幕截图

打开快捷方式属性截图

更新快捷方式属性屏幕截图

通过最近添加的screnshot固定


感谢所有其他答案如何执行此操作!想要提供Win 10指令...


4

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

  1. 转到Windows主页>右键单击“ Git Bash”应用程序。
  2. 属性>快捷方式
  3. 更改这两个设置:(a)删除- cd-to-hometarget (b)在“开始于”中键入要以git开头的文件夹路径。

这为我工作:)


3

如果您要在打开GIT bash时拥有项目选择列表,请执行以下操作:

  • ppath在代码标题中编辑到git项目路径,将此代码放入.bashrc文件并将其复制到$ HOME目录(在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文件系统上)

2

将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
$

2

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

将行追加cd d:/some/path.bashrc。本>>如果不存在,它会创建一个文件,然后追加。


1

肯定是 cd d:/work_space_for_....

没有:它对我不起作用


1

Windows用户的另一种解决方案是将Git Bash.lnk文件复制到您需要从其启动的目录中,然后从该目录启动。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.