Experimentalia

Appunti raminghi

Bash: a spasso tra le directory.

with 2 comments

La mia home directory è piena zeppa di cartelle e sottocartelle, immagino anche la vostra, perchè preferisco perdere i miei file in una gerarchia ben ordinata di cartelle che mi dia l’illusione, almeno finché non li cerco, che sia facile ritrovare i dati che mi servono.

Per chi utilizza principalmente l’interfaccia grafica la cosa può anche funzionare per chi invece consuma la tastiera e risparmia il mouse spesso questa scelta significa digitare path chilometrici.

Non più. Directory dai nomi lunghi? Path complicati da digitare? $CDPATH è la soluzione a tutti i vostri problemi. Non previene la caduta dei capelli, questo no, ma vi permetterà di risparmiare qualche decina di migliaia di battiture all’anno. I polpastrelli delle vostre dita ve ne saranno grati e voi passerete più piacevolmente il vostro tempo alla tastiera.

Non c’è neanche bisogno di installare pacchetit esoterici, tutto quello che dovrete fare è aggiornale la configurazione di bash.

Quando cerchiamo di cambiare directory la shell cerca di trovarla tra quelle contenute nella variabile d’ambiente $CDPATH. Solitamente la variabile contiene solamente ‘.’, la directory corrente¹.

basta modificare il file .bashrc che sta nella vostra home directory inserendo le directory che contengono quelle che usate di solito in $CDPATH, esportarla ed il gioco è fatto.

Attenzione (per chi non avesse letto bene il precedente paragrafo) in SCDPATH non vanno le directory che usate di solito ma quelle che le contengono.

Altro avvertimento: la prima directory da inserire in $CDPATH è ‘.’, pena comportamenti strani di bash (ad esempio volete accedere a quella directory che avete appena visto facendo ls ma vi ritrovate teleportati da tutt’altra parte del filesystem in una directory dallo stesso nome).

La mia variabile $CDPATH al momento è questa:

.:..:/:/var/www:/var:/etc:/home/eineki/:/home/eineki/Documenti

e le uniche due righe che ho dovuo aggiungere a .bashrc sono state queste

CDPATH=.:..:/home/eineki:/var/www:/var:/etc:/home/eineki/Documenti
export CDPATH

se non avete un file .bashrc non dovrete far altro che crearlo nella vostra home ed aggiungerci le due righe. Ovviamente il vostro CDPATH sarà diverso. Per costruirlo basta elencare le directory, nell’ordine in cui si vuole che vengano scandite, separate dai due punti ‘:’.

Le prime tre directory che vi consiglio, nell’ordine, di inserire, le altre secondo le vostre necessità, sono

  1. . la directory corrente – pena il caos più totale
  2. .. la directory padre di quella corrente, se vi è mai capitato di
  3. /home/voi la vostra home directory

E questo è tutto. Vi lascio con un ultima precisazione PATH e CDPATH sono due variabili diverse, mentre nella prima è pericoloso mettere la directory corrente il discorso cambia per CDPATH che ha proprio bisogno che la directory corrente sia presente.

Nota 1: In realtà si tratta di una semplificazione: solitamente la variabile non è definita, ed in questo caso la shell cerca la directory dove spostarsi in quella corrente

Written by Eineki

dicembre 28, 2008 a 3:57 am

Pubblicato su bash, linux

Tagged with , ,

2 Risposte

Subscribe to comments with RSS.

  1. Grandissimo suggerimento! Le mie dita ti sono debitrici.

    Ciao,

    Guido

    Guido

    aprile 20, 2009 at 23:48 pm

  2. Geniale!

    tony

    novembre 9, 2013 at 20:06 pm


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: