dicembre 18, 2010

Come muoverci nel filesystem ed esaminare il contenuto di una directory in Ubuntu.

| No comment
Esplorare il filesystem con 'cd', 'ls' e 'dir'.

È il momento di imparare una "lingua" che il sistema saprà riconoscere e che ci permetterà di poter interagire con esso!

Prima di iniziare la carrellata di comandi, ricordiamo una cosa: noi saremo quanto più precisi possibile, ma non ci sarà possibile per evidenti motivi spiegare tutte le opzioni per ogni singolo comando: per ogni informazione aggiuntiva che vi interessi avere rivolgetevi alla pagine di manuale digitando

man comando


Ed è finalmente ora di iniziare con l'esplorazione dei più comuni comandi che il nostro Linux ci mette a disposizione. Il primo comando che vedremo, essenziale per muoversi fra le directory e certamente noto a molti, è cd.

cd.

Senza argomenti, cd ci riporta alla nostra home directory; con un argomento, che dovrà essere un nome di directory, cd ci porterà all'interno della directory specificata. Utilizzato con l'argomento -, cd ci riporta alla directory di provenienza. Facciamo un esempio e digitiamo:

cd /tmp

per entrare nella directory /tmp. A questo punto digitiamo:

cd

per tornare nella nostra home directory.

Per finire, digitiamo

cd -

e ci vedremo ancora in /tmp !

dir e ls.

Il secondo comando, anch'esso noto a chi abbia lavorato con un sistema DOS, è dir, che elenca file e directory presenti nella directory corrente, se non altrimenti specificato. Molto spesso, per non dire sempre, al posto di dir si usa il comando ls (abbreviazione per list): essi hanno non solo la stessa funzione, ma anche la stessa identica sintassi: lo potete constatare confrontando le pagine di manuale relative all'uno ed all'altro comando.

Normalmente, ls (o dir) visualizza i file in ordine alfabetico e non visualizza i file nascosti, quelli cioè il cui nome inizia con un punto: per vedere anche questi file, dobbiamo utilizzare l'opzione -a (all) che ci svelerà la presenza anche di due directory: "." e ".."; la prima è la rappresentazione della directory corrente, la seconda della directory precedente nell'albero delle directory: così, con:

ls .

vedremo la lista dei file e delle directory presenti nella directory corrente, con

ls ..

vedremo invece la lista dei file e delle directory (d'ora in poi generalizzeremo dicendo solo "file") presenti nella directory "madre" della directory corrente.

Inoltre, per vedere il contenuto di una directory senza dovercisi spostare, è ovviamente possibile digitare

ls /nome/della/directory

Opzioni di ls.

Ma torniamo alle opzioni di ls: con -l potremo utilizzare il "long listing format", che ci darà maggiori informazioni sui file. Un output potrebbe essere questo:

-rw-r--r--  1 edo   edo     9306 mag 28 18:41 prova.txt
drwxr-sr-x 5 edo edo 4096 gen 13 2001 GNUstep
drwx--S--- 2 edo edo 4096 apr 18 02:08 Mail
drwxr-sr-x 2 edo edo 4096 lug 21 17:23 mirrored
drwx--S--- 2 edo edo 4096 gen 8 2001 nsmail
-rw-r----- 1 edo edo 155403 ago 12 11:42 out.jpeg
drwxr-sr-x 2 edo edo 4096 apr 9 01:56 prove
drwxr-sr-x 2 edo edo 4096 mar 8 15:38 public_html

Qui notiamo molte informazioni in più su ogni file, non solo il suo nome! Ad esempio, vediamo a chi appartiene, la sua grandezza e la data di creazione. Per il blocco di informazioni riportate sulla sinistra non abbiate fretta: lo esamineremo in seguito; per il momento, sappiate solo che è un insieme di caratteri che definiscono le caratteristiche di ogni file.

Altre opzioni, forse meno utilizzate ma sempre utili sono:

OpzioneDescrizione
-hche esprime la grandezza del file in formato più facilmente leggibile (ad esempio, 2K, 32M, 4G, etc.); non ha senso se utilizzato da solo, ma può essere utile accoppiato con -l
--colorche distingue tramite colori i i tipi di file
-Sper ordinare i file in ordine di grandezza discendente
-tper odrinare i file in ordine di creazione discendente (i più recenti in alto)

Per avere tutte le possibili opzioni relative al comando ls, vi rimandiamo alla pagina di manuale del comando stesso.

Operare sui file: 'cp', 'mv', 'rm' e 'mkdir'.

Ora che sappiamo muoverci nel filesystem ed esaminare il contenuto di una directory, concentriamocoi sui singoli file e sulle operazioni che possiamo fare su di essi: vedremo quindi i comandi per copiare, spostare ed eliminare i file presenti sul disco; inoltre, vedremo come eseguire le stesse operazioni sulle directory, imparando anche come crearle..

cp.

Il primo comando è cp, utilizzato per copiare file e directory. La sua sintassi è molto semplice:

cp file_sorgente destinazione

oppure, per la copia multipla di file, si usa:

cp file1 file2 ... fileN destinazione

che permetterà di copiare i file file1 .. fileN nella directory di destinazione. Vediamo un esempio:

cp miofile /tmp

che copierà 'miofile' nella directory /tmp. Se in /tmp esiste già un file chiamato miofile, questo sarà sovrascritto dal nuovo file.

Opzioni di cp.

Vediamo ora le opzioni più importanti di cp:

OpzioneDescrizione
-bEsegue automaticamente una copia di backup di ogni file di destinazione esistente
-fForza la sovrascrittura dei file, senza richiedere interventi da parte dell'utente
-iAttiva la modalità interattiva, che chiede conferma prima dell'evanutale sovrascrittura di file di destinazione preesistenti; il suffisso usato è il classico simbolo della tilde, ~
-pMantiene, se possibile, gli attributi (permessi, ownership, etc.) del file
-rPermette di attivare la modalità ricorsiva, che permette la copia di directory
-v Attiva la modalità verbose, che visualizza in output quello che il sistema ha fatto in seguito al nostro comando


mv.

Dopo aver visto come copiare file e directory, dedichiamoci allo spostamento ed al cambio di nome dei file; tutto questo è fatto con un solo comando: mv, la cui sintassi è:

mv sorgente destinazione               (per rinominare)
mv sorgente directory (per spostare un file)
mv sorgente1 .. sorgenteN destinazione (per spostare più file)

Tramite mv, oltre a cambiare il nome di un file, è anche possibile rinominare una directory o muovere più directory in un'altra directory. Le opzioni di mv sono molto simili a quelle di cp, sebbene in numero minore. Quelle che a noi interessano sono le stesse viste per il comando cp, con l'esclusione di -p che per mv non esiste.

rm e rmdir.

Come ultimo, ci rimane il comando rm, che permette di eliminare file o directory. La sua sintassi è abbastanza semplice:

rm file           (per eliminare un file)
rm file1 .. fileN (per eliminare più file)

Le opzioni di rm sono anch'esse simili a quelle di mv; le più utili sono le stesse che sono state viste per cp, con l'esclusione di "-p" che qui non ha alcun senso pratico.

Deve qui essere aperta una parentesi relativa alle directory: di norma, se siete sicuri di poter elimimare una directory non vuota, potete utilizzare il comando

rm -rf directory

che forza l'eliminazione della directory 'directory' e dei suoi contenuti. Per eliminare una directory vuota, si usa invece il comando:

rmdir directory

A volte, però, tale comando non sembra sortire gli effetti desiderati: nonostante la directory sembri vuota, quanto scritto sopra ci restituisce un errore, dove il sistema si lamenta perchè esistono dei file all'interno della directory che vogliamo eliminare.

Accade spesso, infatti, che per controllare il contenuto di una directory si usi solamente ls che, per sua natura, non visualizza i file nascosti! A questo punto si può procedere in due modi: entrare nella directory e cancellare tali file oppure, se si è sicuri che i file nascosti all'interno di tale directory non sono importanti, si può procedere con rm -rf.

mkdir.

Come ultima cosa, vediamo come creare le directory: il comando è mkdir, la cui sintassi è:

mkdir directory                (per creare una directory)
mkdir directory1 .. directoryN (per creare più directory)

Vediamo un esempio: nella nostra home directory, supponiamo /home/utente, è presente la directory "dir" e vogliamo creare "sottodir" come sottodirectory della precedente. La prima cosa che viene in mente di fare è di entrare in "dir" e lanciare il comando:

mkdir sottodir

È però possibile, e anche molto più comodo, utilizzare direttamente il comando:

mkdir dir/sottodir

con una sola attenzione: il comando

mkdir dir/sottodir sottodir2 sottodir3

non fa quello che ci si potebbe aspettare, ossia creare sottodir, sottodir2 e sottodir3 come sottodirectory di dir; quello che qui accade, invece, è la creazione di sottodir come sottodirectory di dir e la creazione di sottodir2 e sottodir3 allo stesso livello di dir!

Quindi, per non dover scrivere:

mkdir dir/sottodir dir/sottodir2 dir/sottodir3

in questo caso è più comodo entrare in dir e lanciare:

mkdir sottodir sottodir2 sottodir3

Con queste nozioni, potrete certamente iniziare a fare gli esperimenti sulla creazione, rimozione e spostamento di file e directory. Permetteteci però qualche consiglio:

  • utilizzate touch per creare file vuoti con cui operare; il comando touch file crea il file vuoto file; utilizzate invece il comando mkdir (mkdir nomedirectory) per la creazione delle directory
  • spostatevi in /tmp per le prove; è più sicuro e vi eviterà di lasciare file e directory inutili sparsi per il filesystem o, peggio, di eliminare file importanti o di sistema per qualche disattenzione
  • non, ripeto, NON utilizzate l'utente root per queste prove: uno stupido errore di digitazione può, come si dice in gergo, "rasare" un intero filesystem!

In conclusione, ricordiamo che tutti i comandi fino a qui visti permettono di specificare caratteri jolly, quali ad esempio l'asterisco o il punto di domanda. Ad esempio:

rm ab*

rimuoverà tutti i file il cui nome inizia con "ab" seguiti da zero o più caratteri. Invece, il comando:

rm ab?

eliminerà tutti i file il cui nome inizia con ab seguiti da un qualsiasi carattere.

fonte: Linux HTML



Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


Trovato questo articolo interessante? Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google, Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie! CONDIVIDI SU!

stampa la pagina
, , , , ,

Nessun commento:

Posta un commento

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.

Ultimi post pubblicati

Archivio

Etichette

Ubuntulandia in Pinterest

Post Più Popolari