Unix / Linux - Gestione delle directory

In questo capitolo, discuteremo in dettaglio sulla gestione delle directory in Unix.

Una directory è un file il cui lavoro da solista consiste nel memorizzare i nomi dei file e le relative informazioni. Tutti i file, ordinari, speciali o directory, sono contenuti in directory.

Unix utilizza una struttura gerarchica per organizzare file e directory. Questa struttura viene spesso definita albero di directory. L'albero ha un singolo nodo radice, il carattere barra (/) e tutte le altre directory sono contenute sotto di essa.

Home directory

La directory in cui ti trovi al primo accesso è chiamata directory home.

Farai gran parte del tuo lavoro nella tua home directory e nelle sottodirectory che creerai per organizzare i tuoi file.

Puoi andare nella tua home directory in qualsiasi momento utilizzando il seguente comando:

$cd ~
$

Qui ~indica la directory home. Supponiamo di dover andare nella home directory di qualsiasi altro utente, utilizzare il seguente comando:

$cd ~username
$

Per andare nella tua ultima directory, puoi usare il seguente comando:

$cd -
$

Nomi di percorso assoluti / relativi

Le directory sono organizzate in una gerarchia con radice (/) in alto. La posizione di qualsiasi file all'interno della gerarchia è descritta dal suo percorso.

Gli elementi di un percorso sono separati da un /. Un nome di percorso è assoluto, se è descritto in relazione alla radice, quindi i nomi di percorso assoluti iniziano sempre con /.

Di seguito sono riportati alcuni esempi di nomi di file assoluti.

/etc/passwd
/users/sjones/chem/notes
/dev/rdsk/Os3

Un percorso può anche essere relativo alla directory di lavoro corrente. I nomi di percorso relativi non iniziano mai con /. Relativamente alla home directory dell'utente amrood, alcuni nomi di percorso potrebbero essere simili a questo:

chem/notes
personal/res

Per determinare in qualsiasi momento dove ti trovi all'interno della gerarchia del filesystem, inserisci il comando pwd per stampare la directory di lavoro corrente -

$pwd
/user0/home/amrood

$

Elenchi directory

Per elencare i file in una directory, puoi usare la seguente sintassi:

$ls dirname

Di seguito è riportato l'esempio per elencare tutti i file contenuti in /usr/local directory -

$ls /usr/local

X11       bin          gimp       jikes       sbin
ace       doc          include    lib         share
atalk     etc          info       man         ami

Creazione di directory

Ora capiremo come creare directory. Le directory vengono create dal seguente comando:

$mkdir dirname

Qui, directory è il percorso assoluto o relativo della directory che si desidera creare. Ad esempio, il comando -

$mkdir mydir
$

Crea la directory mydirnella directory corrente. Ecco un altro esempio:

$mkdir /tmp/test-dir
$

Questo comando crea la directory test-dir nel /tmpdirectory. Ilmkdir comando non produce alcun output se crea con successo la directory richiesta.

Se fornisci più di una directory sulla riga di comando, mkdircrea ciascuna delle directory. Ad esempio, -

$mkdir docs pub
$

Crea le directory docs e pub nella directory corrente.

Creazione di directory padre

Ora capiremo come creare directory padre. A volte, quando si desidera creare una directory, la sua directory padre o le directory potrebbero non esistere. In questo caso,mkdir emette un messaggio di errore come segue -

$mkdir /tmp/amrood/test
mkdir: Failed to make directory "/tmp/amrood/test"; 
No such file or directory
$

In questi casi, è possibile specificare il file -p opzione per il mkdircomando. Crea tutte le directory necessarie per te. Ad esempio:

$mkdir -p /tmp/amrood/test
$

Il comando precedente crea tutte le directory padre richieste.

Rimozione di directory

Le directory possono essere eliminate utilizzando il file rmdir comando come segue -

$rmdir dirname
$

Note - Per rimuovere una directory, assicurati che sia vuota, il che significa che non dovrebbe esserci alcun file o sottodirectory all'interno di questa directory.

È possibile rimuovere più directory alla volta come segue:

$rmdir dirname1 dirname2 dirname3
$

Il comando precedente rimuove le directory dirname1, dirname2 e dirname3, se sono vuote. Ilrmdir comando non produce alcun output se ha successo.

Modifica delle directory

Puoi usare il file cdcomando per fare di più che passare a una directory home. È possibile utilizzarlo per passare a qualsiasi directory specificando un percorso assoluto o relativo valido. La sintassi è la seguente:

$cd dirname
$

Qui, dirnameè il nome della directory in cui desideri passare. Ad esempio, il comando -

$cd /usr/local/bin
$

Modifiche alla directory /usr/local/bin. Da questa directory puoicd nella directory /usr/home/amrood utilizzando il seguente percorso relativo -

$cd ../../home/amrood
$

Ridenominazione delle directory

Il mv (move)può essere utilizzato anche per rinominare una directory. La sintassi è la seguente:

$mv olddir newdir
$

Puoi rinominare una directory mydir per yourdir come segue -

$mv mydir yourdir
$

Le directory. (punto) e .. (punto punto)

Il filename .(punto) rappresenta la directory di lavoro corrente; e ilfilename .. (punto punto) rappresenta la directory un livello sopra la directory di lavoro corrente, spesso indicata come directory padre.

Se inseriamo il comando per mostrare un elenco delle directory / file di lavoro correnti e utilizziamo l'estensione -a option per elencare tutti i file e il file -l option per fornire l'elenco lungo, riceveremo il seguente risultato.

$ls -la
drwxrwxr-x    4    teacher   class   2048  Jul 16 17.56 .
drwxr-xr-x    60   root              1536  Jul 13 14:18 ..
----------    1    teacher   class   4210  May 1 08:27 .profile
-rwxr-xr-x    1    teacher   class   1948  May 12 13:42 memo
$