I comandi Unix per gestire i file

Panoramica sui comandi utilizzati per gestire i file: cp, ln, mv, rm, chmod e touch

Per gestire i file in Unix vengono messi a disposizione i seguenti comandi:

  • cp (copy): copia un file in un altro oppure uno o più file in una directory.

        cp [opzioni][name...] target

    Le opzioni per il comando cp sono:

    • -r se sono indicate due directory, copia ricorsivamente tutto il contenuto della prima directory nella seconda;
    • -i consente di visualizzare un messaggio di conferma se qualche file o directory preesistente nella directory di destinazione deve essere sostituito.

    Ecco un esempio di come copiare un file in una directory:

        $ cp myFile.ext myNewDir

    Specificando più file o directory, saranno copiati tutti nella directory di destinazione. Ad esempio per copiare il file /myOldDir/myFile.back e la directory myDir (e tutto il suo contenuto) in una nuova directory (myNewDir), scriveremo:

        $ cp -r myOldDir/myFile.back myDir myNewDir

    Specificando il nome di due file, il contenuto del primo verrà copiato nel secondo:

        $ cp file1.ext myDir/file2

  • ln (link): consente di creare un collegamento tra la sorgente e la destinazione.

        ln [opzioni] sorgente destinazione

    Se vengono specificati più argomenti, la destinazione deve essere una directory esistente e i link creati avranno lo stesso nome dei file sorgenti. Di default il tipo di link creato è di tipo hard e funziona solo se ci si trova nello stesso file system, con il flag -s è di tipo soft e si può fare riferimento anche a file system differenti.
    Ecco come creare un collegamento tra il file1 e il file2:

        $ ln file1 file2

  • mv (move): rinomina/sposta file o directory.

        mv [opzioni] source...destination

    Se vengono specificati solo i nomi di due elementi, source viene rinominato in destination, oppure in destination/source, a seconda che destination indichi un file o una directory. Qualora destination denoti un file preesistente questo non sarà più accessibile come tale e non sarà più accessibile in alcun modo se destination era il suo unico nome.

    Se vengono indicati più di due elementi e la destinazione è una directory, i file saranno rinominati in destinazione/nomeFile. Qualora source e destination si trovano in file system differenti, il comando sposta solo i file ordinari e non i collegamenti e directory.
    Un’opzione del comando mv è la seguente -i che consente di chiedere conferma all’utente qualora destination sia un file preesistente.

    Un esempio del comando mv per rinominare un file:

        $ mv nomefile nuovonome

    Per spostare un file in una nuova cartella:

        $ mv nomefile nomedir

  • rm (remove): elimina i file o le directory indicati.

        rm [opzioni]

    Le opzioni:

    • -r consente di eliminare ricorsivamente una o più directory con i loro contenuti;
    • -i chiede conferma prima di rimuovere ogni file.

    Per eliminare ricorsivamente una o più directory la struttura del comando rm è la seguente:

        rm -r [opzioni] dirname... [file...]

    Per eliminare due file:

        $ rm pippo /myDir/myFile.ext

    Per eliminare una diretory e il suo contenuto previa conferma:

        $ rm -ri myDir

    Per eliminare tutti i file e cartelle a partire dalla directory corrente:

        $ rm -r *

  • chmod (change mode): cambia la modalità dei permessi ai file o directory indicati.

        chmod [opzioni] file

    I permessi possono essere espressi in forma ottale o simbolica. In quest’ultimo caso, la stringa dei beneficari, costuita da:

    • u per user
    • g per group
    • o per other

    verrà separta dalla stringa dei permessi:

    • r per read
    • w per write
    • x per execute

    Utilizzando i segni + o , dove + indica l’aggiunta di un persone, se il permesso è revocato. Per assegnare più permessi a beneficiari differenti si può utilizzare una virgola per separarli. Ad esempi, per assegnare agli utenti i permessi di lettura, e al gruppo e agli altri tutti i permessi, scriveremo:

        $ chmod u+r,go+rwx

    Un’opzione del comando chmode è -R ch opera ricorsivamente sulla directory e sulle sue sotto directory. Per togliere il permesso di scrittura agli utenti che hanno accesso alla directory myDir e a tutte le sue subdirectory:

        $ chmod -r u-w myDir

    Nella forma simbolica per assegnare ad un file i permessi di rwxr-xr-x:

        $ chmod 755 myFile

  • touch: cambia la data/ora dell’ultimo accesso al file e la data/ora dell’ultima modifica. Senza specificare argomenti, viene utilizzata l’ora del sistema, altrimenti il parametro specificato del essere nel formato MMDDhhmm [YY].
    touch [opzioni] [data/ora]
    Se il file non esiste viene creato un file vuoto. I parametri del comando touch sono:

    • -1 per cambiare solo la data e l’ora di ultimo accesso;
    • -m per cambiare solo la data e l’ora di ultima modifica;
    • c se file non esiste non viene creato.

    Ecco un esempio di come modificare la data/ora di ultimo accesso ad un file, se il file non esiste non verrà creato un nuovo file:

        $ touch -1c myFile

    Ecco come aggiornare la data a tutti i file *.txt.

        $ touch *.txt

  • Ecco l’indice degli articoli sui comandi Unix:

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *