Come impostazione predefinita su un'altra directory anziché su home directory


180

Sto sviluppando su una macchina Windows. L'unico posto di cui ho bisogno per la riga di comando di Linux è Git Bash. Il problema è: quando lo apro, mi trovo nella home directory. Devo cambiare la directory nel mio spazio di lavoro, come:

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

Posso racchiuderlo in un file .sh in modo da non doverlo più digitare manualmente? Questo dovrebbe essere semplice ma non ho alcuna conoscenza della riga di comando di Linux. Sono davvero apprezzato Se riesci a guidarmi attraverso come creare quel file .sh.


5
Le risposte qui sotto sono giuste per risolvere questo problema in modo permanente, tuttavia anche senza questi non dovresti farlo a mano ogni volta. Git Bash include una cronologia dei comandi che persiste tra le sessioni (a differenza delle console di Windows), quindi ogni volta che vuoi ripetere questo comando, invece di digitarlo di nuovo, basta digitare Ctrl-r e quindi parte del comando, ad es. ctrl-r../de verrà visualizzato il comando, quindi digitare invio. In generale, investi qualche minuto nell'apprendere come usare la cronologia dei comandi e poi la userai molto, ripetendo i vari comandi git.
Stephen Hosking,

Cordiali saluti ecco l'alternativa bash WSL C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(o se usi cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data) dove -ifa funzionare i tasti freccia
KCD

Risposte:


101

Basta scrivere quella riga in un file "cd.sh", quindi farlo dal prompt della shell:

. ./cd.sh

Oppure puoi creare un alias o una funzione nel tuo $HOME/.bashrcfile:

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

Se il nome della directory include spazi o altri metacaratteri della shell, saranno necessarie le virgolette; non farà male aggiungerli anche se non sono necessari:

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

(Nota che ho omesso il ../../..; non ne hai bisogno.)

MODIFICA: se aggiungi una riga

foo

al tuo .bashrcdopo la definizione della funzione, la shell avrà inizio in quella directory. Oppure puoi semplicemente usare ilcd comando direttamente nel tuo .bashrcse non hai bisogno di usare la funzione in seguito.

(Il nome fooè solo un esempio; dovresti scegliere un nome più significativo.)


5
Come sottolinea @orip, potresti anche fare il cdtuo nel tuo .bashrc. Ma se lo rendi una funzione, puoi utilizzare nuovamente il comando in seguito, dopo aver cambiato in un'altra directory.
Keith Thompson,

2
Per spiegare "../../ ..", il comando che hai dato specifica un percorso relativo alla tua directory corrente; "../../../d/work_space_for_my_company/project/code_source"sale di tre livelli dalla directory corrente (che sembra essere $HOME), quindi scende a "d", quindi scende a "lavoro ...". L'ambiente git bash shell fa "/d"riferimento a ciò che Windows chiama "D:\". L'uso di un nome di percorso assoluto "/d/work_space_for_my_company/project/code_source", è più semplice e non dipende da dove ti $HOMEtrovi.
Keith Thompson,

2
Dove posso trovare questo .bashrcfile?
ptamzz,

2
@ptamzz: normalmente un .bashrcfile verrà creato nella tua home directory quando il tuo account è impostato. Altrimenti, puoi crearlo tu stesso.
Keith Thompson,

1
Dove trovi "cd.sh"? E quando dici home directory. Stai parlando della home directory per l'app corrente o ??
WowBow,

374

Ecco un'altra soluzione Windows: fai clic con il pulsante destro del mouse sul collegamento di Windows che usi per avviare git bash e fai clic su Proprietà. Modificare il valore di "Avvia in" nel percorso dell'area di lavoro desiderato.

Modifica: controlla anche che il valore Target non includa l'opzione --cd-to-home come indicato nei commenti qui sotto.


13
l'unico problema con questa soluzione è che non si sta impostando il percorso predefinito per la home directory, quella con cui si accede~
Worc

67
Questo ha funzionato per me. Inoltre, ho anche dovuto rimuovere l'opzione --cd-to-home nel comando di avvio.
ChinLoong,

2
Se hai il collegamento appuntato sulla barra delle applicazioni di Windows 7, dovrai fare doppio clic con il pulsante destro del mouse sul programma, come suggerito da lifehacker.com/5475752/…
manat

11
Concordato sul fatto che questa è la soluzione più diretta, ma dovrebbe assolutamente essere modificata per includere la rimozione di "--cd-to-home" nell'obiettivo. Senza quell'ultima modifica, per impostazione predefinita verrà sempre impostata la cartella C: \ Users [nome] (a meno che non sia stata modificata l'installazione).
Zeus56

2
Per chiarire, nella scorciatoia il "Target" dovrebbe essere %WINDIR%\System32\bash.exee il "Start In" dovrebbe essere C:\Tempo qualunque percorso tu voglia.
demoncodemonkey,

45

Aggiungi la linea al .bashrcfile nella home directory (crea il file se non esiste):

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

5
So di essere in ritardo alla festa, ma grazie per aver interrotto la sciocchezza! :)
Felipe Gerard

1
Questo è stato perfetto Sono andato al mio .bashrc.locale aggiunto cd ~/Desktop/repos/;in fondo. Ha funzionato come un fascino! anche cambiare il fondo di .bashrcavrebbe funzionato.
Michael Dimmitt,

Ho appena creato il file .bashrc su ~ e la prossima volta che ho aperto git Bash mi sono lamentato del fatto che non ho .bash_profile e un altro file, quindi li ha creati per me. E dopo la riapertura di Git Bash ha funzionato senza fiori!
Pini Cheyni,

rimuovere l'opzione --cd-to-home nel comando di avvio (Proprietà collegamento)
Telemog

38

Uso ConEmu (fortemente consigliato su Windows) dove ho un compito per avviare Git Bash come

inserisci qui la descrizione dell'immagine

Nota il pulsante "Startup dir ..." in fondo. Aggiunge un -new_console:d:<path>comando di avvio di Git Bash. Fallo puntare dove vuoi


Grazie per aver condiviso l'attività personalizzata, non sono riuscito a farlo funzionare. Come posso eseguire semplici comandi di Windows dopo quello, come ad esempio il ping di Google.com?
Iman Mohamadi,

1
@ImanMohamadi Per cose del genere, preferirei creare degli script con te, aggiungere alla tua variabile ENV PATH p-gper eseguire cmd come per il ping di Google, ecc ...
Juri,

23

Questo può aiutarti.

descrizione dell'immagine

  1. Fare clic con il tasto destro su Git Bash -> Proprietà
  2. Nella scheda Shorcut -> Inizia nel campo -> inserisci il tuo percorso definito dall'utente
  3. Assicurati che il campo Target non includa --go-to-homeo continuerà ad avviarsi nella directory specificata nella tua variabile HOME

Questo è tutto.


Ci ho provato ma non funziona quando il percorso si trova su un'altra unità come d: \ projects \ test
Ray

Windows 10 non mostra quella scheda per git bash, ma puoi hackerarlo usando queste piccole 3 righe di codice, salvalo in un file **. Bat 1. d: 2. cd data 3.git bashse fai doppio clic sul file bat quindi si aprirà nella posizione desiderata
Krish

1
Guarda quel Targetcampo, non ha parametri. Di default contiene ciò -go-to-homeche deve cancellare da lì a quello funziona.
Kurapika,

1
Funziona per me Target: "C: \ Programmi \ Git \ git-bash.exe" (IMPORTANTE) Inizia tra: d: / xampp / htdocs /
raftaar1191

1
Funziona anche per me con lo stesso target di @ raftaar1191 (ho rimosso l'opzione "--cd-to-home") e ho configurato la riga "start in" su "C: \ wamp \ www", molto utile!
nayfun

10

Ho anche modificato l'impostazione "Avvia in" dell'icona di collegamento in: %HOMEDRIVE%/xampp/htdocs/


9

Questo lo farà supponendo che desideri che ciò accada ogni volta che apri la riga di comando:

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

Ora quando si apre la shell si sposterà di tre directory da casa e cambierà in code_source.

Questo codice aggiunge semplicemente la riga "cd ../../../d/work_space_for_my_company/project/code_source" a un file chiamato ".bashrc". ">>" crea un file se non esiste e quindi viene aggiunto. Il file .bashrc è utile per eseguire comandi all'avvio / accesso (ad es. Caricamento di moduli ecc.)


9

(Si prega di leggere l'avvertenza di seguito)

Un modo davvero semplice per farlo in Windows (funziona con git bash, possibilmente altri) è creare una variabile ambientale chiamata HOME che punti alla home directory desiderata.

  1. Fare clic con il tasto destro sul mio computer e selezionare Proprietà
  2. Scegli impostazioni di sistema avanzate (la posizione varia in base alla versione di Windows)
  3. All'interno delle proprietà del sistema, selezionare la scheda avanzata
  4. Nella scheda avanzata, selezionare Variabili ambientali (pulsante in basso)
  5. Sotto "variabile di sistema" controlla se hai già una variabile chiamata HOME. In tal caso, modifica quella variabile evidenziando il nome della variabile e facendo clic su modifica. Rendi il nome della nuova variabile il percorso desiderato.
  6. Se HOME non esiste già, fai clic su "nuovo" sotto le variabili di sistema e crea una nuova variabile chiamata HOME il cui valore è il percorso desiderato.

Variabile ambientale

NOTA: questo può cambiare il modo in cui funzionano le altre cose. Ad esempio, per me cambia dove vivono i miei file di configurazione .ssh. Nel mio caso, volevo che la mia casa fosse U: \, perché quello è il mio posto principale in cui ho messo il project work e le impostazioni dell'applicazione (cioè è davvero la mia directory "home").

MODIFICA 23 giugno 2017: Questa risposta continua a ricevere voti occasionali e voglio avvertire le persone che, sebbene ciò possa "funzionare", sono d'accordo con @AnthonyRaymond che non è raccomandato. Questa è più di una correzione temporanea o di una correzione se non ti interessa se altre cose si rompono. Cambiare casa non causerà danni attivi (come eliminare il disco rigido) ma probabilmente causerà fastidi insidiosi in seguito. Quando inizi ad avere fastidiosi problemi lungo la strada, probabilmente non ricorderai questo cambiamento ... quindi probabilmente ti gratterai la testa in seguito!


Non capisco perché le modifiche suggerite da @asalle (suggerendo principalmente che è possibile modificare anche le variabili di sistema dell'utente) siano state respinte Bamsworld fish_ball e greg-449, le modifiche sembravano ragionevoli.
geneorama,

Questo è un modo troppo distruttivo per essere una buona idea. Può influire su molte altre applicazioni e persino su Windows. Non è raccomandato
Anthony Raymond,

@AnthonyRaymond Come ho notato, cambiare "HOME" può avere altre conseguenze, tuttavia non direi che è necessariamente distruttivo. In effetti, potrebbe essere utile se si desidera che HOME sia una posizione specifica o se un'altra applicazione abbia impostato HOME su una posizione indesiderata. In ogni caso, penso che questa risposta faccia luce su come è impostata la directory predefinita.
geneorama,

@AnthonyRaymond, anche se sono d'accordo, che nel contesto di questa domanda ospitare un determinato progetto (ad es. ../../../d/work_space_for_my_company/project/code_source) Sia una cattiva idea. In generale, però, ci sono momenti in cui HOME non ha bisogno di essere/c/Users/[current user name]/
geneorama,

Se si desidera che una cartella speciale faccia riferimento a un'altra posizione, creare un collegamento simbolico. technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx Non abbiamo modo di sapere quale programma utilizza la variabile HOME, penso che sia un po 'distruttivo.
Anthony Raymond,

7

Fare clic con il tasto destro del mouse sul collegamento dell'applicazione Git Bash andare su Proprietà e modificare la posizione Avvia in in modo che sia la posizione da cui si desidera iniziare.


5

Da una voce del menu Start appuntata in Windows 10

  1. Apri il percorso del file del collegamento appuntato
  2. Apri le proprietà del collegamento
    1. Rimuovere --cd-to-home arg
    2. Start inPercorso di aggiornamento
  3. Appuntare nuovamente il menu di avvio tramite l'aggiunta recente

apri lo screenshot della posizione del file

apri lo screenshot delle proprietà dei collegamenti

aggiornamento screenshot delle proprietà dei collegamenti

pin tramite screnshot aggiunto di recente


Grazie a tutte le altre risposte per come farlo! Volevo fornire istruzioni per Win 10 ...


4

Per Windows: attenersi alla seguente procedura-

  1. Vai su home> Fai clic destro sull'applicazione "Git Bash".
  2. Proprietà> Collegamento
  3. Modificare queste due impostazioni: (a) Elimina - cd-to-homeda target (b) Digitare il percorso della cartella che si desidera iniziare con git in "Avvia in".

Questo ha funzionato per me :)


3

Se vuoi avere un elenco di scelta dei progetti quando apri GIT bash:

  • modifica ppathnell'intestazione del codice nel percorso dei tuoi progetti git , inserisci questo codice nel file .bashrc e copialo nella tua directory $ HOME (in Win Vista / 7 di solito è 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
  • potresti voler impostare questo file come eseguibile all'interno di GIT bash chmod + x .bashrc (ma probabilmente è ridondante, poiché questo file è archiviato sul filesystem ntfs )

2

Il mio collegamento Git Bash su Windows si è lamentato quando ho inserito il cd nella mia directory di lavoro in ~ / .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.

Quindi git ha creato questo .bash_profile:

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

Che fa il lavoro.

In alternativa, puoi semplicemente rimuovere nuovamente .bashrc e inserire il comando cd in .bash_profile:

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

$ cat ~/.bash_profile
cd Source/Repos

Una volta fatto questo puoi chiudere la finestra e riaprirla usando il tuo collegamento sul desktop e il prompt ti dirà che la tua posizione è ora dove volevi - sembra che questo sia il mio caso:

Administrator@raptor1 MINGW64 ~/Source/Repos
$

2

Se si digita questo comando: echo cd d:/some/path >> ~/.bashrc

Aggiunge la linea cd d:/some/patha .bashrc. Il >>crea un file se non esiste e quindi aggiunge.


1

dev'essere cd d:/work_space_for_....

senza il :non funziona per me


1

Un'altra soluzione per gli utenti di Windows sarà quella di copiare il file Git Bash.lnk nella directory da cui è necessario iniziare e avviarlo da lì.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.