Posso aggiungere un collegamento per sostituire un percorso in Linux?


33

Ad esempio, vado sempre su questo percorso:

/ User / qualcosa / somefolders / da qualche parte

ma non voglio scrivere

cd / user / qualcosa / somefolders / da qualche parte

nel terminal per tutto il tempo, posso avere qualche scorciatoia per farlo? per esempio, posso fare qualcosa del genere

cd commandPlace

sostituire il percorso?

Risposte:


32

È possibile utilizzare la variabile di ambiente CDPATHper questo. Dalla pagina man di Bash:

CDPATH

Il percorso di ricerca per il comando cd. Questo è un elenco separato da due punti di directory in cui la shell cerca le directory di destinazione specificate dal comando cd. Un valore di esempio è ".: ~: / Usr".

Nel tuo caso, puoi impostare

export CDPATH=.:/user/something/somefolders

in ~/.bashrc, e quindi digitando cd somewhereti porteresti a /user/something/somefolders/somewhere(supponendo che non ci sia una directory nominata somewherenella directory corrente).

In alternativa, se non si desidera fare riferimento alla cartella somewherecon il suo vero nome, è possibile creare una directory nascosta che contiene un collegamento simbolico /user/something/somefolders/somewherecon il nome che si desidera utilizzare. Potrebbe anche contenere collegamenti ad altre directory che visiti frequentemente. Quindi impostare CDPATHper includere il percorso di quella directory nascosta. Anche se nota che con questo metodo, se tu cd somewheree poi cd .., finirai nella directory nascosta. Questo potrebbe o meno essere un problema per te.


41

Due scorciatoie che uso sempre per cose del genere:

alias

alias somedir = 'cd / home / john / www / qualcosa /'

Quindi puoi digitare somedirper andare a quella directory. Aggiungi questi al tuo .bashrc.

Collegamenti simbolici

ln -s / long / path / to / some / other / folder / shortcut

Questo farà un file a /shortcutcui si collegano /long/path/to/some/other/folder. Quindi puoi digitare cd /shortcutinvece. L'avvertenza di questo è che riempie la tua directory root (o qualunque directory in cui metti i link) abbastanza velocemente. Preferisco gli alias.


bello John!
Gob00st

dovrebbe essere ln -s /long/path/to/some/other/folder /shortcutquando l'ho fatto al contrario, ho creato il collegamento nel punto in cui volevo creare il collegamento. Ho inviato una modifica per aggiornarla.
Elias,

1
Che ne dici di una directory nella radice con un nome breve, ad esempio /sle creare scorciatoie lì? (vale a dire ln -s /long/path/to/some/other/folder /sl/shortcut? Nessun disordine nella radice, più un promemoria visivo che il percorso del prompt è un
collegamento

14

Tendo sempre a usare la ricerca interattiva bash. Provalo. Invocalo con ctrl + r e inizia a digitare una parte del tuo percorso, come da qualche parte . Probabilmente comparirà il tuo comando cd. :)


9

Guarda il comando "alias".

In csh:

alias commandplace "cd /user/something/somefolders/somewhere"

In sh:

alias commandplace="cd /user/something/somefolders/somewhere"

Ma mi piace la soluzione symlink:

ln -s /user/something/somefolders/somewhere ~/commandplace 

Nota: ln accetta argomenti nello stesso ordine di cp.


9

Un'altra cosa che puoi fare è archiviare il percorso in questione in una variabile di ambiente. Aggiungi queste righe al tuo ~/.profilefile:

somedir=/user/something/somefolders/somewhere
export somedir

È quindi possibile accedere alla directory con

cd "$somedir"

1
Questa è di gran lunga la migliore soluzione imo perché puoi usare la variabile per qualsiasi comando. Se si assegna un alias, tale alias è sempre
associato

Questa è la soluzione che speravo esistesse e che cercavo. Per i motivi indicati da BdN3504.
ispirato il

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.