Como usar como padrão outro diretório em vez do diretório inicial

180

Estou desenvolvendo em uma máquina Windows. O único local necessário para a linha de comando do Linux é o Git Bash. O problema é: quando eu o abro, estou no diretório inicial. Eu tenho que mudar o diretório para o meu espaço de trabalho, como:

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

Posso agrupar isso em um arquivo .sh para não precisar mais digitar manualmente? Isso deve ser simples, mas não tenho conhecimento sobre a linha de comando do Linux. Eu sou muito apreciada Se você pode me orientar sobre como criar esse arquivo .sh.

Xi Zhang
fonte
5
As respostas abaixo são corretas para corrigir isso permanentemente, no entanto, mesmo sem elas, você não deve digitar isso sempre. O Git Bash inclui um histórico de comandos que persiste entre as sessões (diferente dos consoles do Windows); portanto, sempre que você quiser repetir esse comando, em vez de digitá-lo novamente, basta digitar Ctrl-r e parte do comando, por exemplo. ctrl-r../de o comando será exibido e digite enter. Em geral, invista alguns minutos em aprender a usar o histórico de comandos e, em seguida, você o usará muito, conforme repete os vários comandos git.
Stephen Hosking
FYI aqui é a alternativa WSL o bash C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(ou se você usar cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data), onde -ifaz as teclas de seta trabalho
KCD

Respostas:

101

Escreva essa linha no arquivo "cd.sh" e faça isso no prompt do shell:

. ./cd.sh

Ou você pode criar um alias ou função no seu $HOME/.bashrcarquivo:

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

Se o nome do diretório incluir espaços ou outros metacaracteres do shell, você precisará de aspas; não fará mal adicioná-los, mesmo que não sejam necessários:

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

(Observe que eu omiti o ../../..; você não precisa dele.)

EDIT: Se você adicionar uma linha

foo

para o seu .bashrcapós a definição da função, o seu shell começará nesse diretório. Ou você pode simplesmente usar o cdcomando diretamente no seu .bashrcse não precisar usar a função posteriormente.

(O nome fooé apenas um exemplo; você deve escolher um nome mais significativo.)

Keith Thompson
fonte
5
Como aponta o @orip, você também pode fazer o mesmo cdno seu .bashrc. Mas se você fizer uma função, poderá usar o comando novamente mais tarde, depois de mudar para outro diretório.
Keith Thompson
2
Para explicar o "../../ ..", o comando que você especificou um caminho relativo ao seu diretório atual; "../../../d/work_space_for_my_company/project/code_source"sobe três níveis no diretório atual (que é o caso $HOME), depois desce para "d" e depois para "trabalhar ...". O ambiente do git bash shell se "/d"refere ao que o Windows chama "D:\". Usar um nome de caminho absoluto,, "/d/work_space_for_my_company/project/code_source"é mais simples e não depende de onde você $HOMEestá.
Keith Thompson
2
Onde posso encontrar esse .bashrcarquivo?
ptamzz
2
@ptamzz: Normalmente, um .bashrcarquivo será criado em seu diretório pessoal quando sua conta for configurada. Caso contrário, você pode criar você mesmo.
Keith Thompson
1
Onde você encontra "cd.sh"? E quando você diz o diretório inicial. Você está falando sobre o diretório inicial do aplicativo atual ou?
WowBow 16/04
374

Aqui está uma solução mais para Windows: Clique com o botão direito do mouse no atalho do Windows que você usa para iniciar o git bash e clique em Propriedades. Altere o valor de "Start In" para o caminho do espaço de trabalho desejado.

Editar: verifique também se o valor de destino não inclui a opção --cd-to-home, conforme observado nos comentários abaixo.

David Siegal
fonte
13
o único problema com esta solução é que você não está definindo o caminho padrão para o diretório home, aquele acessado com~
WORC
67
Isso funcionou para mim. Além disso, também tive que remover a opção --cd-to-home no comando de inicialização.
precisa saber é o seguinte
2
No caso de você ter o atalho fixado na barra de tarefas do Windows 7, você precisa clicar direita duas vezes no programa como sugerido por lifehacker.com/5475752/...
manat
11
Concordou que esta é a solução mais direta, mas absolutamente deve ser alterada para incluir a remoção do "--cd-to-home" no destino. Sem essa última alteração, você sempre usará como padrão a pasta C: \ Users [nome] (a menos que tenha modificado sua configuração).
Zeus56
2
Para esclarecer, no atalho o "Alvo" deve ser %WINDIR%\System32\bash.exee o "Start In" deve ser C:\Tempou o caminho que você desejar.
demoncodemonkey
45

Adicione a linha ao .bashrcarquivo no diretório inicial (crie o arquivo se ele não existir):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc
orip
fonte
5
Eu sei que estou super atrasado para a festa, mas obrigado por interromper a função absurda! :)
Felipe Gerard
1
Isso foi perfeito. Fui para o meu .bashrc.locale adicionado cd ~/Desktop/repos/;ao fundo. Trabalhou como um encanto! mudar o fundo .bashrctambém funcionaria.
22617 Michael Dimmitt
Acabei de criar o arquivo .bashrc em ~ e na próxima vez em que abri o git Bash, ele reclamou que não tinha .bash_profile e outro arquivo, então os criou para mim. E depois de reabrir o Git Bash, ele funcionou sem flores!
Pini Cheyni
remover a opção --cd-to-home no comando de inicialização (Propriedades do Atalho)
telebog
38

Eu uso o ConEmu (altamente recomendado no Windows), onde tenho uma tarefa para iniciar o Git Bash como

insira a descrição da imagem aqui

Observe o botão "Startup dir ..." na parte inferior. Ele adiciona um -new_console:d:<path>ao comando de inicialização do Git Bash. Faça com que aponte para onde quiser

Juri
fonte
Obrigado por compartilhar a tarefa personalizada, não consegui fazê-la funcionar. Como posso executar comandos simples do Windows depois disso, como executar ping no Google.com, por exemplo?
Iman Mohamadi
1
@ImanMohamadi Para coisas como que eu prefiro criar scripts com você adicionar à sua variável env PATH st u pode exec cmds como p-gpara ping google etc ...
Juri
23

Isso pode ajudá-lo.

Descrição da imagem

  1. Clique com o botão direito do mouse em git bash -> properties
  2. Na guia Atalho -> Iniciar no campo -> digite o caminho definido pelo usuário
  3. Verifique se o campo Destino não inclui --go-to-homeou continuará a iniciar no diretório especificado na sua variável HOME

É isso aí.

Krish
fonte
Eu tentei isso, mas ele não funciona quando o caminho é em outra unidade, como d: \ projetos \ teste
Ray
O Windows 10 não mostra essa guia para o git bash, mas você pode cortá-lo usando essas pequenas 3 linhas de código, salvá-lo em algum arquivo **. Bat 1. d: 2. cd data 3.git bashse você clicar duas vezes no arquivo bat e ele será aberto no local desejado
Krish
1
Olhe esse Targetcampo, ele não tem parâmetros. Por padrão, contém o -go-to-homeque deve apagar de lá para o que funciona.
precisa
1
Funciona para mim Destino: "C: \ Arquivos de programas \ Git \ git-bash.exe" (IMPORTANTE) Iniciar em: d: / xampp / htdocs /
raftaar1191
1
Também funciona para mim com o mesmo destino que @ raftaar1191 (removi a opção "--cd-to-home") e configurei a linha "start in" para "C: \ wamp \ www", muito útil!
Nayfun 08/0318
10

Também mudei a configuração "Iniciar em" do ícone de atalho para: %HOMEDRIVE%/xampp/htdocs/

Francis
fonte
9

Isso será feito assumindo que você queira que isso aconteça sempre que abrir a linha de comando:

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

Agora, quando você abrir o shell, ele subirá três diretórios da home e mudará para code_source.

Esse código simplesmente anexa a linha "cd ../../../d/work_space_for_my_company/project/code_source" a um arquivo chamado ".bashrc". O ">>" cria um arquivo se ele não existir e depois anexa. O arquivo .bashrc é útil para executar comandos no momento da inicialização / login (por exemplo, carregamento de módulos etc.)

Usagi
fonte
9

(Leia o aviso abaixo)

A maneira realmente simples de fazer isso no Windows (funciona com o git bash, possivelmente outros) é criar uma variável ambiental chamada HOME que aponta para o diretório inicial desejado.

  1. Clique com o botão direito do mouse no meu computador e escolha propriedades
  2. Escolha configurações avançadas do sistema (o local varia de acordo com a versão do Windows)
  3. Nas propriedades do sistema, escolha a guia avançado
  4. Na guia Avançado, escolha Variáveis ​​ambientais (botão inferior)
  5. Em "variável do sistema", verifique se você já possui uma variável chamada HOME. Nesse caso, edite essa variável destacando o nome da variável e clicando em editar. Faça da nova variável o nome do caminho desejado.
  6. Se o HOME ainda não existir, clique em "novo" em variáveis ​​do sistema e crie uma nova variável chamada HOME cujo valor é o caminho desejado.

Variável ambiental

NOTA: Isso pode mudar a maneira como outras coisas funcionam. Por exemplo, para mim, muda onde os meus arquivos de configuração .ssh vivem. No meu caso, eu queria que minha casa fosse U: \, porque esse é o meu principal local em que eu coloco as configurações do trabalho e do aplicativo do projeto (ou seja, é realmente o meu diretório "inicial").

EDITAR 23 de junho de 2017: Esta resposta continua recebendo votos ocasionais e quero alertar as pessoas de que, embora isso possa "funcionar", concordo com @AnthonyRaymond que não é recomendado. Isso é mais uma correção temporária ou uma correção, se você não se importa se outras coisas quebram. Mudar de casa não causará danos ativos (como excluir o disco rígido), mas provavelmente causará aborrecimentos insidiosos mais tarde. Quando você começa a ter problemas irritantes no caminho, provavelmente não se lembra dessa mudança ... então provavelmente estará coçando a cabeça mais tarde!

geneorama
fonte
Não entendo por que as edições sugeridas por @asalle (principalmente sugerindo que você também pode editar as variáveis ​​do sistema do usuário) foram rejeitadas Bamsworld fish_ball e greg-449, as edições pareciam razoáveis.
geneorama
Essa é uma maneira muito destrutiva de ser uma boa ideia. Isso pode afetar muitos outros aplicativos e até janelas. Não é recomendado
Anthony Raymond
@ AnthonyRaymond Como observei que mudar "HOME" pode ter outras consequências, no entanto, não diria que é necessariamente destrutivo. De fato, pode ser benéfico se você desejar que seu HOME seja um local específico ou se outro aplicativo tiver definido o HOME para um local indesejado. De qualquer forma, acho que essa resposta lança alguma luz sobre como o diretório padrão está definido.
geneorama
@AnthonyRaymond, embora eu concorde, que no contexto desta questão, definir um projeto em particular (por exemplo ../../../d/work_space_for_my_company/project/code_source) é uma má ideia. De um modo geral, porém, há momentos em que o HOME não precisam ser/c/Users/[current user name]/
geneorama
Se você deseja que uma pasta especial aponte para outro local, crie um link simbólico. technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx Não temos como saber qual programa usa a variável HOME, e sinto que é um pouco destrutivo.
Anthony Raymond
7

Clique com o botão direito do mouse no link do aplicativo Git Bash, vá para Propriedades e modifique o local Iniciar no para ser o local em que você deseja iniciar.

Michael Stramel
fonte
5

De um item fixo do menu Iniciar no Windows 10

  1. Abra o local do arquivo do atalho fixado
  2. Abra as propriedades do atalho
    1. Remover --cd-to-homearg
    2. Start inCaminho de atualização
  3. Repita o pino para iniciar o menu via adição recente

captura de tela de localização de arquivo aberto

captura de tela de atalhos abertos

atualizar captura de tela

pin via screnshot adicionado recentemente


Obrigado a todas as outras respostas sobre como fazer isso! Queria fornecer instruções do Win 10 ...

spottedmahn
fonte
4

Para janelas: siga estas etapas -

  1. Vá para a página inicial do Windows> clique com o botão direito do mouse no aplicativo "Git Bash".
  2. Propriedades> Atalho
  3. Altere estas duas configurações: (a) Excluir - cd-to-homede target (b) Digite o caminho da pasta que você deseja iniciar com o git em "Iniciar em".

Isso funcionou para mim :)

Md Nehaluddin Haider
fonte
3

Se você deseja ter uma lista de opções de projetos ao abrir o GIT bash:

  • edite ppathno cabeçalho do código o caminho do seu projeto git , coloque esse código no arquivo .bashrc e copie-o para o diretório $ HOME (no Win Vista / 7 geralmente é 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
  • convém definir esse arquivo como executável dentro do GIT bash chmod + x .bashrc (mas provavelmente é redundante, pois esse arquivo é armazenado no sistema de arquivos NTFS )
s1w_
fonte
2

Meu atalho do Git Bash no Windows reclamou quando eu coloquei o CD no meu diretório de trabalho em ~ / .bashrc

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.

Então o git criou este .bash_profile:

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

Qual faz o trabalho.

Como alternativa, você pode simplesmente remover o .bashrc novamente e colocar o comando cd em .bash_profile:

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

$ cat ~/.bash_profile
cd Source/Repos

Uma vez feito isso, você pode fechar a janela e reabri-la usando o atalho da área de trabalho e o prompt informará que sua localização agora é onde você queria - parece que este é o meu caso:

Administrator@raptor1 MINGW64 ~/Source/Repos
$
dr. rAI
fonte
2

Se você digitar este comando: echo cd d:/some/path >> ~/.bashrc

Anexa a linha cd d:/some/patha .bashrc. O >>cria um arquivo se ele não existir e depois é anexado.

mtpultz
fonte
1

deve ser cd d:/work_space_for_....

sem o :que não funciona para mim

larsbo
fonte
1

Outra solução para usuários do Windows será copiar o arquivo Git Bash.lnk para o diretório em que você precisa iniciar e iniciá-lo a partir daí.

skip405
fonte