Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Community > Tech
 
[DATA MANAGEMENT] - Manipolazione delle directory
Clicca QUI per vedere il messaggio nel forum
neo
Manipolazione di directory:

Il file system di Unix offre un modo per categorizzare e organizzare le directory con cui si lavora. Le directory offrono un modo per raggruppare le cose in gruppi relativi allo stesso argomento. É possibile modificare il file system aggiungendo o eliminando file e directory e spostando i file da una directory all'altra. I comandi che permettono di compiere le operazioni fondamentali di manipolazione dei file (eliminazione, ridenominazione, spostamento e copia dei file) sono tra quelli più utilizzati in assoluto! Proprio per tale motivo, questo thread prende in considerazione questi comandi fondamentali di manipolazione di directory in Unix.



    Creazione di una directory
    É possibile creare delle nuove directory nel file system come desiderato con il comando: mkdir (da make directory, che in inglese significa 'crea directory'). Per esempio, vogliamo creare la directory 'Test' nella cartella /home/neo:

    Prima di tutto dobbiamo vedere in che directory siamo, per cui:
    code:
    [root@localhost root]# pwd /root [root@localhost root]#


    Devo portarmi nella subdirectory /home/neo, e poi vedere se esiste già la subdirectory 'Test':
    code:
    [root@localhost root]# cd /home/neo [root@localhost neo]# ls -la total 2 drwxr-x--- 30 root root 4096 Feb 19 22:00 ./ drwxr-x--- 19 root root 4096 Feb 19 22:00 ../ [root@localhost neo]#


    All'interno di questa cartella creerò la mia directory "Test". Procedo alla vera e propria creazione della cartella, utilizzando il comando sopracitato.
    code:
    [root@localhost neo]# mkdir Test [root@localhost neo]#


    Controllo se è stata creata la cartella 'Test' in /home/neo, e poi controllo se la stessa è vuota:
    code:
    [root@localhost neo]# ls -la total 3 drwxr-x--- 30 root root 4096 Feb 19 22:00 ./ drwxr-x--- 19 root root 4096 Feb 19 22:00 ../ drwxr-x--- 19 root root 4096 Feb 20 20:30 prova/ [root@localhost neo]# ls -la prova total 2 drwxr-x--- 30 root root 4096 Feb 20 20:30 ./ drwxr-x--- 19 root root 4096 Feb 20 20:30 ../ [root@localhost neo]#



    Spostamento di directory
    Per organizzare il file system è necessario spostare e rinominare le cartelle. Per esempio, è possibile utilizzare una directory per le bozze e spostare i documenti in una directory finale quando vengono completati. É possibile rinominare una cartella in modo che il nome sia più informativo o più facile da ricordare, o per rispecchiare i cambiamenti del suo contenuto o stato. Lo spostamento invece torna utile se vogliamo portare una cartella da una posizione ad un'altra, senza lasciare traccia dello stessa nella cartella di partenza. Differisce dalla copia proprio per quest'ultimo motivo.
    In Unix il comando è identico sia per la rinomina sia per lo spostamento di una directory. Tale comando è: mv (da move, che in inglese significa spostare). Per esempio, la seguente procedura permette di spostare la directory "Test" nella directory corrente alla directory /home/neo/Directory_1:

    Prima di tutto dobbiamo vedere in che directory siamo, per cui:
    code:
    [root@localhost root]# pwd /root [root@localhost root]#


    Mi devo ora spostare nella posizione in cui è contenuta la cartella da spostare:
    code:
    [root@localhost root]# cd /home/neo/ [root@localhost neo]#


    Devo ora vedere nella lista delle directory per sapere quale voglio spostare:
    code:
    [root@localhost neo]# ls -la total 3 drwxr-x--- 30 root root 4096 Feb 19 22:00 ./ drwxr-x--- 19 root root 4096 Feb 19 22:00 ../ drwxr-x--- 19 root root 4096 Feb 19 22:00 Directory_1/ drwxr-x--- 19 root root 4096 Feb 19 22:00 Test/ [root@localhost neo]#


    Procedo al vero e proprio spostamento della directory, utilizzando il comando sopracitato.
    code:
    [root@localhost root]# mv Test Directory_1 'Test' -> '/Directory_1/Test' [root@localhost root]#


    Eseguito lo spostamento, devo vedere se è veramente avvenuto. Vado quindi a vedere prima di tutto se nella directory di partenza la cartella è stata rimossa:
    code:
    [root@localhost neo]# ls -la total 2 drwxr-x--- 30 root root 4096 Feb 19 22:00 ./ drwxr-x--- 19 root root 4096 Feb 19 22:00 ../ drwxr-x--- 19 root root 4096 Feb 19 22:00 Directory_1/ [root@localhost root]#


    Dopo aver visto che dalla directory di partenza la cartella è stata eliminata, procedo nel controllare l'avvenuto spostamento nella cartella di destinazione prevista:
    code:
    [root@localhost neo]# cd /home/neo/Directory_1 [root@localhost Test]# ls -la total 3 drwxr-x--- 30 root root 4096 Feb 19 22:00 ./ drwxr-x--- 19 root root 4096 Feb 19 22:00 ../ -rw-r--r-- 1 root root 24 Jan 22 21:58 Test_1


    Ovviamente è possibile rendere tuttò ciò più semplice utilizzando il carattere jolly, l'asterisco *.


    Eliminazione di una directory
    Esistono due modi per eliminare una directory. Se la directory è vuota (non contiene file o sottodirectory), è possibile utilizzare il comando: rmdir (da remove directory, che in inglese significa 'rimuovi directory'). Se però si cerca di utilizzare tale comando su una directory che non è vuota, si ottiene un messaggio di errore. Bisognerà un comando e aggiungere l'opzione: rm -r.
    Per esempio, vogliamo eliminare la directory 'Test' dalla cartella /home/neo:

    Prima di tutto dobbiamo vedere in che directory siamo, per cui:
    code:
    [root@localhost root]# pwd /root [root@localhost root]#


    Devo portarmi nella subdirectory /home/neo, e poi vedere se esiste effettivamente la subdirectory 'Test':
    code:
    [root@localhost root]# cd /home/neo [root@localhost neo]# ls -la total 3 drwxr-x--- 30 root root 4096 Feb 19 22:00 ./ drwxr-x--- 19 root root 4096 Feb 19 22:00 ../ drwxr-x--- 19 root root 4096 Feb 20 20:30 prova/ [root@localhost neo]#


    Devo rimuovere la la mia directory VUOTA "Test". Procedo alla vera e propria eliminazione della cartella, utilizzando il comando sopracitato.
    code:
    [root@localhost neo]# rmdir Test [root@localhost neo]#


    Controllo se è stata rimossa la cartella 'Test' da /home/neo:
    code:
    [root@localhost neo]# ls -la total 2 drwxr-x--- 30 root root 4096 Feb 19 22:00 ./ drwxr-x--- 19 root root 4096 Feb 19 22:00 ../ [root@localhost neo]#



    Ipotiziamo ora di dover eliminare la cartella 'Test' da /home/neo, e in questo caso sia piena. Al primo passaggio si può notare che con il comando semplice, compare un errore, nel secondo caso invece l'operazione va a buon fine:
    code:
    [root@localhost neo]# rmdir prova rmdir: 'prova': Directory not empty [root@localhost neo]# rm -r prova [root@localhost neo]# Controllo se è stata rimossa la cartella 'Test' da /home/neo: [code][root@localhost neo]# ls -la total 2 drwxr-x--- 30 root root 4096 Feb 19 22:00 ./ drwxr-x--- 19 root root 4096 Feb 19 22:00 ../ [root@localhost neo]#

    [/code]


...TO BE CONTINUE...

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate