Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Muoversi in un Linux Filesystem

Le nozioni più utili per esplorare un Filesystem Linux da linea di comando.
Le nozioni più utili per esplorare un Filesystem Linux da linea di comando.
Link copiato negli appunti

Quando ci si riferisce alle posizioni di un Linux Filesystem lo si può fare essenzialmente in due modi, uno assoluto e uno relativo. Nel secondo caso dovete immaginare di fornire le coordinate della destinazione in “spostamenti” partendo dalla directory corrente. Nel primo caso partiremo invece dalla radice descrivendo l’intero percorso. Un esempio renderà tutto più chiaro.

fprincipe@html1:~$ tree primo-livello/
primo-livello/
├── file-lvl1
└── secondo-livello
    └── terzo-livello
        └── quarto-livello
            └── file-lvl4

Supponiamo di trovarci al terzo livello di un elemento del nostro filesystem, digitate il comando pwd per ottenere il percorso assoluto della directory corrente.

pwd
/home/fprincipe/primo-livello/secondo-livello/terzo-livello

Da questo punto possiamo riferirci a elementi del Filesystem Linux descrivendo gli spostamenti da fare lungo l’albero. Quindi, per visualizzare il contenuto del file presente nel quarto livello potrete digitare il comando riportato a seguire:

more quarto-livello/file-lvl4 
questo è il contenuto di file-lvl4

Ovviamente potrete utilizzare anche un percorso relativo che vada verso l'alto. Tramite l’uso di due punti consecutivi sarà possibile dire “sali di un livello” e farlo anche più volte nello stesso comando al fine di scalare contemporaneamente un determinato numero di livelli.

ls ../../
file-lvl1  secondo-livello

Avete appena visualizzato il contenuto della directory di primo livello che si trova due livelli sopra la posizione da cui stiamo operando.
In alcuni casi vi sarà utile utilizzare le espressioni regolari "~" e "/".
Il primo carattere, ovvero tilde, che può essere ottenuto in Linux premendo contemporaneamente i tasti "Alt Gr" e "ì", se inserito in un comando relativo al filesystem è tradotto come home directory (vale per qualsiasi utente). La home directory è la directory in cui l’utente conserva i propri file personali e su cui ha necessariamente permesso di scrittura. Con "/" ci si riferisce, invece, al punto più alto dell’intero filesystem.

Ora chiariremo meglio la funzione di alcuni comandi che abbiamo appena incontrato.
Il comando cd cambia la posizione corrente verso quella descritta dall'argomento, ls restituisce la lista del contenuto di una directory. Nel precedente esempio abbiano impartito a ls un argomento per ottenere la lista del contenuto della directory specificata ma è possibile passare anche il comando senza alcun argomento oppure con “.” quale argomento. Il punto è una espressione regolare che rappresenta nei filesystem il percorso corrente.

Ulteriori argomenti utili da passare a ls sono:

-a Lista tutto il contenuto della directory, compresi i file nascosti, ovvero quelli che hanno il nome che inizia con il punto.
-i Elenca l’identificativo numerico dell’inode associato al file.
-l Fornisce i risultati nella forma estesa quindi con tutti i dati aggiuntivi del caso.
-R Elenca ricorsivamente anche il contenuto delle sottodirectory contenute (attenzione: potrebbe generare un output molto corposo che all'accorrenza potrà essere “interrotto” digitando contemporaneamente i tasti “Ctrl” e “C”).

Come avrete ormai compreso un filesystem può essere anche molto vasto quindi complesso da consultare. Ovviamente esistono utilità volte a facilitare la ricerca all’interno di esso, le principali sono:

which Restituisce il percorso di un eseguibile.
whereis Fornisce il percorso dei sorgenti associati all'argomento con -s, dell binario con -b e i manuali di un eseguibile con -m.
find Adoperando l'opzione -name possiamo cercare un oggetto specifico. Il primo argomento deve essere la directory di partenza. Il carattere * è una espressione regolare che identifica un completamento generico. A esempio find ~ -name “*.sh” identifica tutti i file con estensione .sh presenti nella nostra home directory. Altri argomenti di questo comando che possono rivelarsi utili sono: -size per effettuare ricerche basate sulle dimensioni e -user per identificare i file di uno specifico utente.
locate Simile a find si appoggia però a un indice genarato attraverso un demone che mantiene traccia dei cambiamenti effettuati nel filesystem consentendo, quindi, di ottenere risposte più rapide.
type Chiarisce il significato per il sistema di un “comando” impartito.

A seguire alcuni esempi d’uso per i comandi appena presentati.

fprincipe@html1:~$ ls
dir1  primo-livello
fprincipe@html1:~$ ls .
dir1  primo-livello
root@html1:~# cd /
root@html1:/# pwd
/
fprincipe@html1:~$ ls -lia
total 44
539623 drwxr-xr-x 6 fprincipe fprincipe 4096 Mar 16 10:40 .
524290 drwxr-xr-x 3 root      root      4096 Feb 22 11:34 ..
539664 -rw------- 1 fprincipe fprincipe 1143 Mar 13 17:25 .bash_history
539626 -rw-r--r-- 1 fprincipe fprincipe  220 Feb 22 11:34 .bash_logout
539625 -rw-r--r-- 1 fprincipe fprincipe 3771 Feb 22 11:34 .bashrc
  7619 drwx------ 2 fprincipe fprincipe 4096 Feb 22 11:38 .cache
525068 drwxrwxr-x 5 fprincipe fprincipe 4096 Feb 28 11:28 dir1
557451 drwxrwxr-x 2 fprincipe fprincipe 4096 Mar 15 16:45 .nano
524554 drwxrwxr-x 3 fprincipe fprincipe 4096 Mar 14 16:34 primo-livello
[...]
fprincipe@html1:~$ which cp
/bin/cp
fprincipe@html1:~$ whereis -m cp
cp: /usr/share/man/man1/cp.1.gz
fprincipe@html1:~$ whereis -b cp
cp: /bin/cp
fprincipe@html1:~$ type ls
ls is aliased to `ls --color=auto'
fprincipe@html1:~$ type echo
echo is a shell builtin

Ti consigliamo anche