Crea scorciatoie alle directory tramite terminale

4

Il mio problema è: ogni volta che sto codificando, lavoro all'interno di cartelle che si trovano all'interno di altre cartelle ed è un lungo modo di digitare:

cd /folder1/folder2/.../folderN

So che è possibile creare un collegamento alla cartella utilizzando alias . Quindi sarebbe:

alias ep="cd /Users/thi/Dropbox/CurrentProject"

La mia domanda è, dove dovrei inserire questo alias? All'interno /etc/bashrc ? O dovrei creare un file chiamato ~/.profile e metterlo lì? Dove dovrei metterlo?

    
posta Thi G. 23.08.2013 - 20:05
fonte

5 risposte

4

Conservo gli alias in ~/.bash_profile .

Terminal e iTerm 2 aprono nuove shell come shell di login per impostazione predefinita. Quando bash viene invocato come shell di login interattiva, legge ~/.bash_profile ma non ~/.bashrc . Gli emulatori di terminale su altre piattaforme spesso aprono nuove shell come shell non di login, quindi per esempio bash legge ~/.bashrc ma non ~/.bash_profile . Gli utenti OS X spesso usano ~/.bash_profile come file di configurazione personale corrispondente a ~/.bashrc su altre piattaforme, ma è anche possibile importare ~/.bashrc da ~/.bash_profile o dire a Terminal o a iTerm 2 di aprire nuove shell come non- shell di login.

Se esistono entrambi ~/.profile e ~/.bash_profile , bash legge solo ~/.bash_profile quando è invocato come shell di login interattiva. ~/.profile viene anche utilizzato da altre shell e programmi che potrebbero non comprendere le stesse opzioni di configurazione di bash.

/etc/bashrc è di proprietà di root e potrebbe essere sostituito quando aggiorni OS X.

Per ulteriori informazioni, consulta man bash|less +^INVOCATION o link .

    
risposta data 23.08.2013 - 21:55
fonte
1

In genere, le definizioni alias vengono inserite nello stesso file delle definizioni $PATH che è probabilmente ~/.bashrc .

Tecnicamente parlando un alias non è un collegamento a una cartella ma per qualsiasi comando di shell. Quindi puoi anche avere cose come

alias heal='xattr -d com.apple.quarantine'
alias la='ls -lFa'
alias ll='ls -lF'
alias ls='ls -FG'
alias show-path='echo -e ${PATH//:/\n}'

per semplificarti la vita. Gli alias vengono sostituiti così com'è dalla shell, quindi se esegui

heal downloadedFile.dmg

viene espanso in

xattr -d com.apple.quarantine downloadedFile.dmg

ed eseguito successivamente. Se hai bisogno di più flessibilità con i parametri, potresti voler esaminare le funzioni della shell (ma probabilmente dovrebbe andare in un'altra domanda).

    
risposta data 23.08.2013 - 20:33
fonte
1

Non sono esperto di bash, ma penso che dovresti inserire il tuo alias all'interno di .bashrc nella tua home directory.

    
risposta data 23.08.2013 - 20:32
fonte
1

Questa risposta riassume ordinatamente ciò che idealmente appartiene a ciascuno di ~/.bashrc , ~/.profile e ~/.bash_profile . In breve:

  • ~ / .bash_profile dovrebbe essere super-semplice e caricare solo .profile e .bashrc (in questo ordine)

  • ~ / .profile ha le cose NON specificamente correlate a bash, come ad esempio variabili d'ambiente (PATH e amici)

  • ~ / .bashrc ha tutto ciò che desideri su una riga di comando interattiva. Prompt dei comandi, variabile EDITOR, alias bash per il mio utilizzo

    Alcune note:

  • Tutto ciò che dovrebbe essere disponibile per le applicazioni grafiche O per sh (o bash invocato come sh) DEVE essere in ~ / .profile

  • ~ / .bashrc non deve mostrare nulla

  • Tutto ciò che dovrebbe essere disponibile solo per accedere alle shell dovrebbe entrare ~ / .Profile

  • Assicurati che ~ / .bash_login non esista.

risposta data 27.08.2015 - 19:19
fonte
1

La risposta breve è: (generalmente)

Aggiungilo a ~/.bash_profile

echo 'alias ep="cd $HOME/Dropbox/CurrentProject"' >> ~/.bash_profile

NOTA: Non dovrebbe esserci spazio tra l'alias / variabile e il segno equals ("=") e il valore. Se il tuo valore ha spazi, l'intero valore dovrebbe essere messo tra virgolette.

Una risposta migliore è: (probabilmente)

Prova invece a impostare una variabile di ambiente. Probabilmente è più simile a quello che vuoi realmente.

echo 'export EP="$HOME/Dropbox/CurrentProject"' >> ~/.bash_profile
echo 'alias ep="cd $EP"' >> ~/.bash_profile

NOTA: a cui si accede alle variabili di ambiente anteponendo il simbolo del dollaro ("$") . Tuttavia, quando viene definito, il simbolo del dollaro ("$") deve essere omesso.

Una risposta alternativa è: (possibilmente)

simbolico-Link . AKA. Symlink . {FKA. Alias . (Mac OS)}. {BKA. Tasti di scelta rapida . (SO Windows)}.

ln -s <dirA/subB/fileC_in> <dirX/subY/symbZ_out>

NOTA: i link simbolici vengono talvolta indicati anteponendo il segno e commerciale ("@") .

    
risposta data 27.08.2015 - 14:39
fonte

Leggi altre domande sui tag