{"id":3638,"date":"2026-07-18T08:44:03","date_gmt":"2026-07-18T06:44:03","guid":{"rendered":"https:\/\/rootmail.it\/courses\/lpic-1-exam-101-010-160-corso-completo-in-italiano\/lessons\/103-4-gestire-file-e-directory\/"},"modified":"2026-07-20T21:57:42","modified_gmt":"2026-07-20T19:57:42","slug":"103-4-gestire-file-e-directory","status":"publish","type":"lesson","link":"https:\/\/rootmail.it\/en\/courses\/lpic-1-exam-1-101-500-corso-completo-in-italiano\/lessons\/103-4-gestire-file-e-directory\/","title":{"rendered":"103.4 Gestire file e directory"},"content":{"rendered":"<h2>103.4 Gestire file e directory<\/h2>\n<p>La gestione di file e directory rappresenta una delle attivit\u00e0 pi\u00f9 frequenti per qualsiasi utente o amministratore Linux. Creare nuove cartelle, copiare documenti, spostare file, rinominarli o eliminarli sono operazioni quotidiane che richiedono familiarit\u00e0 con i principali comandi della shell.<\/p>\n<p>GNU\/Linux mette a disposizione un insieme di strumenti semplici ma estremamente potenti che consentono di amministrare il filesystem in modo rapido ed efficiente. Conoscere questi comandi \u00e8 fondamentale non solo per lavorare dalla riga di comando, ma anche per automatizzare attivit\u00e0 mediante script e gestire sistemi privi di interfaccia grafica.<\/p>\n<p>In questa lezione imparerai a creare, copiare, spostare ed eliminare file e directory, utilizzare collegamenti simbolici e fisici, individuare file nel filesystem e comprendere le principali operazioni di gestione del contenuto di un sistema Linux.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 fondamentale conoscere i principali comandi di gestione del filesystem, tra cui <code>cp<\/code>, <code>mv<\/code>, <code>rm<\/code>, <code>mkdir<\/code>, <code>rmdir<\/code>, <code>touch<\/code>, <code>find<\/code>, <code>locate<\/code>, <code>ln<\/code> e le relative opzioni pi\u00f9 comuni.<\/p>\n<\/blockquote>\n<hr \/>\n<h2>\ud83c\udfaf Obiettivi della lezione<\/h2>\n<p>Al termine di questa lezione sarai in grado di:<\/p>\n<ul>\n<li>creare e rimuovere file e directory;<\/li>\n<li>copiare, spostare e rinominare file e cartelle;<\/li>\n<li>utilizzare collegamenti fisici (hard link) e simbolici (symbolic link);<\/li>\n<li>ricercare file nel filesystem utilizzando gli strumenti appropriati;<\/li>\n<li>gestire in modo sicuro il contenuto del filesystem Linux.<\/li>\n<\/ul>\n<hr \/>\n<h2>Argomenti trattati<\/h2>\n<ul>\n<li>Creazione e rimozione di file e directory.<\/li>\n<li>Copia, spostamento e rinomina.<\/li>\n<li>Hard link e collegamenti simbolici.<\/li>\n<li>Ricerca dei file con <code>find<\/code> e <code>locate<\/code>.<\/li>\n<li>Operazioni comuni sul filesystem.<\/li>\n<li>Best practice nella gestione dei file.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\u2328\ufe0f Provalo subito<\/strong><br \/>Apri un terminale Linux e crea una directory di test nella tua home. Utilizzala per sperimentare i comandi presentati nella lezione senza il rischio di modificare file importanti del sistema.<\/p>\n<\/blockquote>\n<h2>103.4.1 Gestione di base di file e directory<\/h2>\n<p>La gestione di file e directory costituisce una delle attivit\u00e0 fondamentali di qualsiasi sistema operativo. In Linux, quasi ogni elemento del sistema \u00e8 rappresentato da un file: documenti, configurazioni, dispositivi, processi e persino alcune informazioni di sistema. Per questo motivo, conoscere i principali comandi per amministrare il filesystem \u00e8 una competenza indispensabile per ogni amministratore Linux.<\/p>\n<p>Essendo un diretto discendente di Unix, Linux mette a disposizione un insieme di strumenti semplici, affidabili e potenti che consentono di creare, copiare, spostare, rinominare ed eliminare file e directory direttamente dalla riga di comando.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 essenziale conoscere i principali comandi di gestione del filesystem e comprenderne il comportamento, le opzioni pi\u00f9 comuni e le differenze tra le varie operazioni.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Perch\u00e9 \u00e8 importante gestire correttamente i file?<\/h3>\n<p>L&#8217;amministrazione di un sistema Linux richiede continuamente operazioni sul filesystem, ad esempio:<\/p>\n<ul>\n<li>creare directory per nuovi progetti;<\/li>\n<li>copiare file di configurazione;<\/li>\n<li>spostare o rinominare documenti;<\/li>\n<li>eliminare file non pi\u00f9 necessari;<\/li>\n<li>organizzare dati e backup.<\/li>\n<\/ul>\n<p>Saper utilizzare i comandi appropriati consente di lavorare in modo rapido, preciso e sicuro, anche su sistemi privi di interfaccia grafica.<\/p>\n<hr \/>\n<h3>I principali comandi di gestione<\/h3>\n<p>Durante questa lezione approfondirai l&#8217;utilizzo dei comandi fondamentali per amministrare file e directory.<\/p>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Funzione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>touch<\/code><\/td>\n<td>Crea un file vuoto o aggiorna la data di modifica di un file esistente.<\/td>\n<\/tr>\n<tr>\n<td><code>mkdir<\/code><\/td>\n<td>Crea una nuova directory.<\/td>\n<\/tr>\n<tr>\n<td><code>cp<\/code><\/td>\n<td>Copia file e directory.<\/td>\n<\/tr>\n<tr>\n<td><code>mv<\/code><\/td>\n<td>Sposta o rinomina file e directory.<\/td>\n<\/tr>\n<tr>\n<td><code>rm<\/code><\/td>\n<td>Elimina file e directory.<\/td>\n<\/tr>\n<tr>\n<td><code>rmdir<\/code><\/td>\n<td>Elimina directory vuote.<\/td>\n<\/tr>\n<tr>\n<td><code>find<\/code><\/td>\n<td>Ricerca file e directory nel filesystem.<\/td>\n<\/tr>\n<tr>\n<td><code>locate<\/code><\/td>\n<td>Ricerca rapidamente file tramite un database indicizzato.<\/td>\n<\/tr>\n<tr>\n<td><code>ln<\/code><\/td>\n<td>Crea hard link e collegamenti simbolici.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Nei prossimi paragrafi analizzeremo ciascun comando nel dettaglio.<\/p>\n<hr \/>\n<h3>Operare sul filesystem in sicurezza<\/h3>\n<p>Molti comandi di gestione dei file modificano direttamente il contenuto del filesystem. Per questo motivo \u00e8 importante verificare sempre il percorso sul quale si sta operando prima di eseguire operazioni potenzialmente distruttive, come l&#8217;eliminazione di file o directory.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> In Linux molti comandi, come <code>rm<\/code>, eliminano definitivamente i file senza spostarli nel Cestino. Prima di confermare un&#8217;operazione, verifica sempre il percorso e gli argomenti del comando.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Prima di eseguire operazioni di copia, spostamento o eliminazione, verifica sempre la directory corrente utilizzando <code>pwd<\/code> e il contenuto della cartella con <code>ls<\/code>. Questa semplice abitudine riduce il rischio di modificare o cancellare accidentalmente file importanti.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>La gestione di file e directory \u00e8 una competenza fondamentale nell&#8217;amministrazione di sistemi Linux.<\/li>\n<li>Linux mette a disposizione numerosi comandi dedicati alla gestione del filesystem.<\/li>\n<li>I principali strumenti consentono di creare, copiare, spostare, rinominare, eliminare e ricercare file e directory.<\/li>\n<li>Prima di modificare il filesystem \u00e8 sempre opportuno verificare il percorso sul quale si sta operando.<\/li>\n<\/ul>\n<h2>103.4.2 Copiare, spostare e rimuovere file<\/h2>\n<p>La gestione dei file in Linux si basa principalmente su tre comandi fondamentali: <code>cp<\/code>, <code>mv<\/code> e <code>rm<\/code>. Questi strumenti permettono di copiare, spostare, rinominare ed eliminare file e directory, rappresentando alcune delle operazioni pi\u00f9 comuni nell&#8217;amministrazione di un sistema Linux.<\/p>\n<p>Pur essendo semplici da utilizzare, questi comandi modificano direttamente il filesystem. \u00c8 quindi importante comprenderne il funzionamento e utilizzarli con attenzione.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 fondamentale conoscere i comandi <code>cp<\/code>, <code>mv<\/code> e <code>rm<\/code>, comprese le opzioni pi\u00f9 comuni come <code>-r<\/code>, <code>-i<\/code>, <code>-f<\/code> e <code>-v<\/code>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Copiare file e directory con <code>cp<\/code><\/h3>\n<p>Il comando <code>cp<\/code> (<strong>copy<\/strong>) permette di creare una copia di uno o pi\u00f9 file oppure di intere directory.<\/p>\n<p>Per copiare un file:<\/p>\n<pre><code>cp source.txt destination.txt\r\n<\/code><\/pre>\n<p>Il file <code>source.txt<\/code> viene copiato con il nome <code>destination.txt<\/code>.<\/p>\n<p>Per copiare una directory completa \u00e8 necessario utilizzare l&#8217;opzione <code>-r<\/code> (<strong>recursive<\/strong>):<\/p>\n<pre><code>cp -r source_dir\/ destination_dir\/\r\n<\/code><\/pre>\n<p>Questa opzione copia la directory e tutto il suo contenuto, comprese eventuali sottodirectory.<\/p>\n<p>Alcune opzioni molto utilizzate sono:<\/p>\n<ul>\n<li><code>-r<\/code> \u2192 copia ricorsivamente directory e sottodirectory;<\/li>\n<li><code>-i<\/code> \u2192 richiede conferma prima di sovrascrivere un file esistente;<\/li>\n<li><code>-v<\/code> \u2192 visualizza i file copiati (modalit\u00e0 verbose).<\/li>\n<\/ul>\n<hr \/>\n<h3>Spostare o rinominare file con <code>mv<\/code><\/h3>\n<p>Il comando <code>mv<\/code> (<strong>move<\/strong>) permette sia di spostare file e directory sia di rinominarli.<\/p>\n<p>Per rinominare un file:<\/p>\n<pre><code>mv oldname.txt newname.txt\r\n<\/code><\/pre>\n<p>Per spostare un file in un&#8217;altra directory:<\/p>\n<pre><code>mv documento.pdf \/home\/user\/Documenti\/\r\n<\/code><\/pre>\n<p>Il comando pu\u00f2 essere utilizzato anche per spostare intere directory.<\/p>\n<p>Opzioni comuni:<\/p>\n<ul>\n<li><code>-i<\/code> \u2192 richiede conferma prima della sovrascrittura;<\/li>\n<li><code>-v<\/code> \u2192 mostra le operazioni eseguite.<\/li>\n<\/ul>\n<hr \/>\n<h3>Eliminare file e directory con <code>rm<\/code><\/h3>\n<p>Il comando <code>rm<\/code> (<strong>remove<\/strong>) elimina definitivamente file e directory.<\/p>\n<p>Per eliminare un file:<\/p>\n<pre><code>rm unwanted.txt\r\n<\/code><\/pre>\n<p>Per eliminare una directory e tutto il suo contenuto:<\/p>\n<pre><code>rm -r unwanted_dir\/\r\n<\/code><\/pre>\n<p>L&#8217;opzione <code>-r<\/code> consente di eliminare ricorsivamente directory e sottodirectory.<\/p>\n<p>Tra le opzioni pi\u00f9 utilizzate troviamo:<\/p>\n<ul>\n<li><code>-r<\/code> \u2192 elimina directory ricorsivamente;<\/li>\n<li><code>-f<\/code> \u2192 forza l&#8217;eliminazione senza richiedere conferma;<\/li>\n<li><code>-i<\/code> \u2192 richiede conferma prima di ogni eliminazione;<\/li>\n<li><code>-v<\/code> \u2192 mostra i file eliminati.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\u26a0\ufe0f Attenzione<\/strong> A differenza dei sistemi operativi desktop, il comando <code>rm<\/code> non sposta i file nel Cestino: l&#8217;eliminazione \u00e8 normalmente definitiva.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Confronto tra i comandi<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Operazione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>cp<\/code><\/td>\n<td>Copia file e directory.<\/td>\n<\/tr>\n<tr>\n<td><code>mv<\/code><\/td>\n<td>Sposta o rinomina file e directory.<\/td>\n<\/tr>\n<tr>\n<td><code>rm<\/code><\/td>\n<td>Elimina file e directory.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Quando utilizzi <code>cp<\/code>, <code>mv<\/code> o <code>rm<\/code>, considera l&#8217;uso dell&#8217;opzione <code>-i<\/code> durante le operazioni pi\u00f9 delicate, cos\u00ec da ricevere una richiesta di conferma prima della sovrascrittura o dell&#8217;eliminazione dei file. Prima di utilizzare <code>rm -r<\/code>, verifica sempre il percorso della directory con <code>pwd<\/code> e controllane il contenuto con <code>ls<\/code>.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>cp<\/code> copia file e directory.<\/li>\n<li><code>cp -r<\/code> copia ricorsivamente una directory.<\/li>\n<li><code>mv<\/code> sposta o rinomina file e directory.<\/li>\n<li><code>rm<\/code> elimina file.<\/li>\n<li><code>rm -r<\/code> elimina directory e tutto il loro contenuto.<\/li>\n<li>Le opzioni <code>-i<\/code>, <code>-f<\/code> e <code>-v<\/code> rendono questi comandi pi\u00f9 sicuri o pi\u00f9 dettagliati.<\/li>\n<\/ul>\n<h2>103.4.3 Gestione delle directory<\/h2>\n<p>Le directory costituiscono la struttura portante del filesystem Linux e permettono di organizzare file e cartelle in modo gerarchico. La shell mette a disposizione numerosi comandi per creare, visualizzare e rimuovere directory, oltre a creare rapidamente nuovi file.<\/p>\n<p>Conoscere questi strumenti \u00e8 fondamentale per amministrare il filesystem in modo ordinato ed efficiente.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante conoscere i comandi <code>mkdir<\/code>, <code>rmdir<\/code>, <code>ls<\/code> e <code>touch<\/code>, comprese le opzioni pi\u00f9 comuni e il loro utilizzo pratico.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Creare directory con <code>mkdir<\/code><\/h3>\n<p>Il comando <code>mkdir<\/code> (<strong>make directory<\/strong>) permette di creare una nuova directory.<\/p>\n<p>Esempio:<\/p>\n<pre><code>mkdir new_dir\r\n<\/code><\/pre>\n<p>Verr\u00e0 creata una directory chiamata <code>new_dir<\/code> nella posizione corrente.<\/p>\n<p>Per creare contemporaneamente una struttura di directory annidate si utilizza l&#8217;opzione <code>-p<\/code>:<\/p>\n<pre><code>mkdir -p progetti\/linux\/lab\r\n<\/code><\/pre>\n<p>Se una delle directory intermedie non esiste, verr\u00e0 creata automaticamente.<\/p>\n<hr \/>\n<h3>Eliminare directory con <code>rmdir<\/code><\/h3>\n<p>Il comando <code>rmdir<\/code> elimina una directory, ma solo se \u00e8 completamente vuota.<\/p>\n<p>Esempio:<\/p>\n<pre><code>rmdir empty_dir\r\n<\/code><\/pre>\n<p>Se la directory contiene file o sottodirectory, il comando restituir\u00e0 un messaggio di errore.<\/p>\n<p>Per eliminare directory non vuote si utilizza normalmente:<\/p>\n<pre><code>rm -r directory\r\n<\/code><\/pre>\n<hr \/>\n<h3>Visualizzare il contenuto di una directory con <code>ls<\/code><\/h3>\n<p>Il comando <code>ls<\/code> elenca il contenuto di una directory.<\/p>\n<p>Per visualizzare il contenuto della directory corrente:<\/p>\n<pre><code>ls\r\n<\/code><\/pre>\n<p>Una delle opzioni pi\u00f9 utilizzate \u00e8:<\/p>\n<pre><code>ls -la\r\n<\/code><\/pre>\n<p>dove:<\/p>\n<ul>\n<li><code>-l<\/code> visualizza il formato dettagliato (permessi, proprietario, dimensioni e data);<\/li>\n<li><code>-a<\/code> mostra anche i file nascosti, il cui nome inizia con un punto (<code>.<\/code>).<\/li>\n<\/ul>\n<p>L&#8217;opzione <code>-h<\/code> viene spesso combinata con <code>-l<\/code> per visualizzare dimensioni pi\u00f9 leggibili:<\/p>\n<pre><code>ls -lh\r\n<\/code><\/pre>\n<hr \/>\n<h3>Creare file con <code>touch<\/code><\/h3>\n<p>Il comando <code>touch<\/code> permette di creare un file vuoto.<\/p>\n<p>Esempio:<\/p>\n<pre><code>touch newfile.txt\r\n<\/code><\/pre>\n<p>Se il file non esiste, viene creato immediatamente.<\/p>\n<p>Se invece il file esiste gi\u00e0, <code>touch<\/code> non ne modifica il contenuto ma aggiorna il suo <strong>timestamp<\/strong>, ovvero la data e l&#8217;ora dell&#8217;ultima modifica o accesso (a seconda delle opzioni utilizzate).<\/p>\n<p>Questo comportamento \u00e8 molto utile negli script e durante i test.<\/p>\n<hr \/>\n<h3>Comandi principali per la gestione delle directory<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Funzione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>mkdir<\/code><\/td>\n<td>Crea una nuova directory.<\/td>\n<\/tr>\n<tr>\n<td><code>mkdir -p<\/code><\/td>\n<td>Crea anche eventuali directory intermedie.<\/td>\n<\/tr>\n<tr>\n<td><code>rmdir<\/code><\/td>\n<td>Elimina una directory vuota.<\/td>\n<\/tr>\n<tr>\n<td><code>ls<\/code><\/td>\n<td>Visualizza il contenuto di una directory.<\/td>\n<\/tr>\n<tr>\n<td><code>ls -la<\/code><\/td>\n<td>Mostra file nascosti e informazioni dettagliate.<\/td>\n<\/tr>\n<tr>\n<td><code>touch<\/code><\/td>\n<td>Crea un file vuoto o aggiorna il timestamp di un file esistente.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> <code>rmdir<\/code> pu\u00f2 eliminare esclusivamente directory vuote. Per rimuovere una directory contenente file \u00e8 necessario utilizzare <code>rm -r<\/code>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Organizza sempre i tuoi file in una struttura di directory logica e coerente. Utilizza <code>mkdir -p<\/code> quando devi creare pi\u00f9 livelli di directory e preferisci <code>ls -lah<\/code> durante l&#8217;amministrazione del sistema per visualizzare anche i file nascosti e le dimensioni in formato leggibile.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>mkdir<\/code> crea nuove directory.<\/li>\n<li><code>mkdir -p<\/code> crea automaticamente anche le directory intermedie.<\/li>\n<li><code>rmdir<\/code> elimina esclusivamente directory vuote.<\/li>\n<li><code>ls<\/code> visualizza il contenuto delle directory.<\/li>\n<li><code>ls -la<\/code> mostra informazioni dettagliate e file nascosti.<\/li>\n<li><code>touch<\/code> crea file vuoti o aggiorna il timestamp di file esistenti.<\/li>\n<\/ul>\n<h2>103.4.4 Ricercare file con <code>find<\/code><\/h2>\n<p>Il comando <code>find<\/code> \u00e8 uno degli strumenti pi\u00f9 potenti disponibili in Linux per la ricerca di file e directory. Permette di individuare elementi del filesystem in base a numerosi criteri, come il nome, il tipo, la dimensione, la data di modifica, il proprietario e molto altro.<\/p>\n<p>Grazie alla sua flessibilit\u00e0, <code>find<\/code> \u00e8 ampiamente utilizzato nell&#8217;amministrazione dei sistemi, negli script Bash e nelle attivit\u00e0 di manutenzione.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 fondamentale conoscere il comando <code>find<\/code>, le principali opzioni di ricerca e la possibilit\u00e0 di eseguire operazioni sui file trovati tramite l&#8217;opzione <code>-exec<\/code>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Struttura del comando<\/h3>\n<p>La sintassi generale \u00e8:<\/p>\n<pre><code>find percorso criteri\r\n<\/code><\/pre>\n<p>dove:<\/p>\n<ul>\n<li><strong>percorso<\/strong> indica la directory dalla quale iniziare la ricerca;<\/li>\n<li><strong>criteri<\/strong> definiscono le caratteristiche dei file da individuare.<\/li>\n<\/ul>\n<p>Ad esempio:<\/p>\n<pre><code>find \/home\/user -name \"*.txt\"\r\n<\/code><\/pre>\n<p>ricerca tutti i file con estensione <code>.txt<\/code> presenti nella directory indicata e nelle sue sottodirectory.<\/p>\n<hr \/>\n<h3>Ricercare file per nome<\/h3>\n<p>Per cercare tutti i file con estensione <code>.txt<\/code>:<\/p>\n<pre><code>find \/ -name \"*.txt\"\r\n<\/code><\/pre>\n<p>L&#8217;opzione <code>-name<\/code> distingue tra lettere maiuscole e minuscole.<\/p>\n<p>Per effettuare una ricerca senza distinzione tra maiuscole e minuscole si utilizza:<\/p>\n<pre><code>find \/ -iname \"*.txt\"\r\n<\/code><\/pre>\n<hr \/>\n<h3>Ricercare file modificati recentemente<\/h3>\n<p>\u00c8 possibile individuare i file modificati negli ultimi giorni mediante l&#8217;opzione <code>-mtime<\/code>.<\/p>\n<p>Ad esempio, per trovare i file modificati nelle ultime 24 ore:<\/p>\n<pre><code>find \/ -mtime -1\r\n<\/code><\/pre>\n<p>Alcuni esempi:<\/p>\n<ul>\n<li><code>-mtime -1<\/code> \u2192 modificati meno di un giorno fa;<\/li>\n<li><code>-mtime 7<\/code> \u2192 modificati esattamente sette giorni fa;<\/li>\n<li><code>-mtime +30<\/code> \u2192 modificati pi\u00f9 di trenta giorni fa.<\/li>\n<\/ul>\n<hr \/>\n<h3>Ricercare file in base alla dimensione<\/h3>\n<p>L&#8217;opzione <code>-size<\/code> permette di selezionare file in funzione della loro dimensione.<\/p>\n<p>Ad esempio:<\/p>\n<pre><code>find \/ -size +1M\r\n<\/code><\/pre>\n<p>ricerca tutti i file di dimensione superiore a 1 MB.<\/p>\n<p>Altri esempi:<\/p>\n<ul>\n<li><code>+100M<\/code> \u2192 maggiori di 100 MB;<\/li>\n<li><code>-10k<\/code> \u2192 inferiori a 10 KB;<\/li>\n<li><code>500c<\/code> \u2192 esattamente 500 byte.<\/li>\n<\/ul>\n<hr \/>\n<h3>Eseguire operazioni sui file trovati<\/h3>\n<p>Una delle caratteristiche pi\u00f9 potenti di <code>find<\/code> \u00e8 la possibilit\u00e0 di eseguire automaticamente un comando su ogni file trovato mediante l&#8217;opzione <code>-exec<\/code>.<\/p>\n<p>Ad esempio:<\/p>\n<pre><code>find . -name \"*.log\" -exec ls -lh {} \\;\r\n<\/code><\/pre>\n<p>In questo esempio:<\/p>\n<ul>\n<li><code>{}<\/code> rappresenta il file trovato;<\/li>\n<li><code>\\;<\/code> indica la fine del comando da eseguire.<\/li>\n<\/ul>\n<p>Questa funzionalit\u00e0 \u00e8 estremamente utile negli script di amministrazione.<\/p>\n<hr \/>\n<h3>Altri criteri di ricerca<\/h3>\n<p>Tra le opzioni pi\u00f9 utilizzate troviamo:<\/p>\n<table>\n<thead>\n<tr>\n<th>Opzione<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>-name<\/code><\/td>\n<td>Ricerca per nome.<\/td>\n<\/tr>\n<tr>\n<td><code>-iname<\/code><\/td>\n<td>Ricerca per nome ignorando maiuscole e minuscole.<\/td>\n<\/tr>\n<tr>\n<td><code>-type f<\/code><\/td>\n<td>Ricerca solo file.<\/td>\n<\/tr>\n<tr>\n<td><code>-type d<\/code><\/td>\n<td>Ricerca solo directory.<\/td>\n<\/tr>\n<tr>\n<td><code>-size<\/code><\/td>\n<td>Ricerca in base alla dimensione.<\/td>\n<\/tr>\n<tr>\n<td><code>-mtime<\/code><\/td>\n<td>Ricerca in base alla data di modifica.<\/td>\n<\/tr>\n<tr>\n<td><code>-exec<\/code><\/td>\n<td>Esegue un comando sui file trovati.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> Il comando <code>find<\/code> esplora realmente il filesystem, quindi pu\u00f2 richiedere tempo su dischi molto grandi. Nella prossima sezione vedremo il comando <code>locate<\/code>, molto pi\u00f9 veloce perch\u00e9 utilizza un database indicizzato.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Quando possibile, limita sempre il percorso di ricerca alla directory realmente interessata anzich\u00e9 utilizzare <code>\/<\/code>. In questo modo le ricerche saranno pi\u00f9 rapide e produrranno risultati pi\u00f9 pertinenti. Inoltre, utilizza con attenzione l&#8217;opzione <code>-exec<\/code>, soprattutto quando esegue comandi che modificano o eliminano file.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>find<\/code> ricerca file e directory nel filesystem.<\/li>\n<li><code>-name<\/code> e <code>-iname<\/code> consentono di cercare per nome.<\/li>\n<li><code>-mtime<\/code> seleziona i file in base alla data di modifica.<\/li>\n<li><code>-size<\/code> permette di ricercare file in base alla dimensione.<\/li>\n<li><code>-type<\/code> distingue file e directory.<\/li>\n<li><code>-exec<\/code> consente di eseguire automaticamente un comando sui file trovati.<\/li>\n<\/ul>\n<h2>103.4.5 Archiviazione e backup<\/h2>\n<p>La creazione di archivi e copie di sicurezza \u00e8 una delle attivit\u00e0 pi\u00f9 importanti nell&#8217;amministrazione di un sistema Linux. Che si tratti di salvare file di configurazione, trasferire documenti o creare immagini complete di un disco, Linux mette a disposizione strumenti potenti e flessibili per gestire ogni esigenza.<\/p>\n<p>Tra le utility pi\u00f9 utilizzate troviamo <code>tar<\/code>, <code>cpio<\/code> e <code>dd<\/code>, ciascuna progettata per scopi specifici.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 fondamentale conoscere l&#8217;utilizzo dei comandi <code>tar<\/code>, <code>cpio<\/code> e <code>dd<\/code>, comprendendone le differenze e gli scenari d&#8217;impiego.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Creare archivi con <code>tar<\/code><\/h3>\n<p>Il comando <code>tar<\/code> (<strong>Tape Archive<\/strong>) permette di raccogliere pi\u00f9 file e directory in un unico archivio.<\/p>\n<p>Per creare un archivio:<\/p>\n<pre><code>tar -cvf archive.tar file1 file2\r\n<\/code><\/pre>\n<p>dove:<\/p>\n<ul>\n<li><code>-c<\/code> crea un nuovo archivio;<\/li>\n<li><code>-v<\/code> visualizza i file elaborati (verbose);<\/li>\n<li><code>-f<\/code> specifica il nome dell&#8217;archivio.<\/li>\n<\/ul>\n<p>Per estrarre il contenuto:<\/p>\n<pre><code>tar -xvf archive.tar\r\n<\/code><\/pre>\n<p>In questo caso:<\/p>\n<ul>\n<li><code>-x<\/code> estrae i file;<\/li>\n<li><code>-v<\/code> mostra le operazioni eseguite;<\/li>\n<li><code>-f<\/code> indica il file archivio.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> Il formato <code>.tar<\/code> \u00e8 un archivio, non una compressione. Spesso viene successivamente compresso con strumenti come <code>gzip<\/code>, <code>bzip2<\/code> o <code>xz<\/code>, ottenendo file con estensioni come <code>.tar.gz<\/code>, <code>.tar.bz2<\/code> o <code>.tar.xz<\/code>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Archiviare con <code>cpio<\/code><\/h3>\n<p>Il comando <code>cpio<\/code> svolge una funzione simile a <code>tar<\/code>, ma lavora in modo differente: legge l&#8217;elenco dei file dallo <strong>Standard Input (stdin)<\/strong>.<\/p>\n<p>Ad esempio:<\/p>\n<pre><code>find . -name \"*.txt\" | cpio -ov &gt; archivio.cpio\r\n<\/code><\/pre>\n<p>In questo esempio:<\/p>\n<ul>\n<li><code>find<\/code> individua i file;<\/li>\n<li><code>cpio<\/code> crea un archivio contenente tutti i file trovati.<\/li>\n<\/ul>\n<p>Sebbene oggi sia meno diffuso rispetto a <code>tar<\/code>, <code>cpio<\/code> \u00e8 ancora presente in numerosi sistemi Unix\/Linux ed \u00e8 richiesto dal syllabus LPIC-1.<\/p>\n<hr \/>\n<h3>Copiare dati a basso livello con <code>dd<\/code><\/h3>\n<p>Il comando <code>dd<\/code> permette di copiare dati a livello di blocchi, senza interpretarne il contenuto.<\/p>\n<p>Viene utilizzato principalmente per:<\/p>\n<ul>\n<li>creare immagini complete di dischi o partizioni;<\/li>\n<li>eseguire backup a basso livello;<\/li>\n<li>clonare dischi;<\/li>\n<li>scrivere immagini ISO su dispositivi USB.<\/li>\n<\/ul>\n<p>Ad esempio, per creare un&#8217;immagine di un disco:<\/p>\n<pre><code>dd if=\/dev\/sda of=\/path\/to\/backup.img\r\n<\/code><\/pre>\n<p>dove:<\/p>\n<ul>\n<li><code>if<\/code> (<strong>input file<\/strong>) indica la sorgente;<\/li>\n<li><code>of<\/code> (<strong>output file<\/strong>) indica il file di destinazione.<\/li>\n<\/ul>\n<p>\u00c8 possibile specificare anche la dimensione dei blocchi copiati:<\/p>\n<pre><code>dd if=\/dev\/sda of=backup.img bs=4M status=progress\r\n<\/code><\/pre>\n<p>L&#8217;opzione <code>status=progress<\/code> mostra l&#8217;avanzamento della copia ed \u00e8 molto utile durante operazioni di lunga durata.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Attenzione<\/strong> <code>dd<\/code> copia i dati senza effettuare verifiche. Un errore nell&#8217;indicare il dispositivo di destinazione pu\u00f2 causare la sovrascrittura completa di un disco. Per questo motivo viene spesso scherzosamente definito <em>Disk Destroyer<\/em>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Quando utilizzare questi strumenti?<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Utilizzo principale<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>tar<\/code><\/td>\n<td>Creazione ed estrazione di archivi di file e directory.<\/td>\n<\/tr>\n<tr>\n<td><code>cpio<\/code><\/td>\n<td>Archiviazione di file provenienti da altri comandi tramite stdin.<\/td>\n<\/tr>\n<tr>\n<td><code>dd<\/code><\/td>\n<td>Backup, clonazione e copia di interi dischi o partizioni.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Per il backup di file e directory utilizza normalmente <code>tar<\/code>, eventualmente combinato con strumenti di compressione. Riserva <code>dd<\/code> alle copie a basso livello di dischi o partizioni e verifica sempre con estrema attenzione i parametri <code>if<\/code> e <code>of<\/code> prima di eseguire il comando.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>tar<\/code> crea ed estrae archivi di file e directory.<\/li>\n<li><code>cpio<\/code> crea archivi utilizzando l&#8217;elenco dei file ricevuto dallo stdin.<\/li>\n<li><code>dd<\/code> copia dati a livello di blocchi ed \u00e8 utilizzato per backup e clonazione di dischi.<\/li>\n<li><code>dd<\/code> utilizza i parametri <code>if<\/code> (origine) e <code>of<\/code> (destinazione).<\/li>\n<li>Prima di utilizzare <code>dd<\/code>, verifica sempre il dispositivo di destinazione per evitare perdite di dati.<\/li>\n<\/ul>\n<h2>103.4.6 Compressione e decompressione dei file<\/h2>\n<p>La compressione dei file consente di ridurre lo spazio occupato sul disco e velocizzare il trasferimento dei dati attraverso la rete. Linux mette a disposizione diversi algoritmi di compressione, ciascuno con caratteristiche differenti in termini di velocit\u00e0 e rapporto di compressione.<\/p>\n<p>Tra gli strumenti pi\u00f9 utilizzati troviamo <code>gzip<\/code>, <code>bzip2<\/code> e <code>xz<\/code>, accompagnati dalle rispettive utility per la decompressione.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 fondamentale conoscere i comandi <code>gzip<\/code>, <code>gunzip<\/code>, <code>bzip2<\/code>, <code>bunzip2<\/code>, <code>xz<\/code> e <code>unxz<\/code>, comprendendo le differenze tra i vari algoritmi di compressione.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Compressione con <code>gzip<\/code><\/h3>\n<p><code>gzip<\/code> \u00e8 uno degli strumenti di compressione pi\u00f9 diffusi nei sistemi Linux. Offre un buon compromesso tra velocit\u00e0 e rapporto di compressione.<\/p>\n<p>Per comprimere un file:<\/p>\n<pre><code>gzip large.txt\r\n<\/code><\/pre>\n<p>Il file originale viene sostituito dal file compresso:<\/p>\n<pre><code>large.txt.gz\r\n<\/code><\/pre>\n<p>Per decomprimerlo:<\/p>\n<pre><code>gunzip large.txt.gz\r\n<\/code><\/pre>\n<p>Il file originale verr\u00e0 ripristinato.<\/p>\n<hr \/>\n<h3>Compressione con <code>bzip2<\/code><\/h3>\n<p><code>bzip2<\/code> utilizza l&#8217;algoritmo <strong>Burrows-Wheeler<\/strong>, generalmente in grado di ottenere una compressione migliore rispetto a <code>gzip<\/code>, a scapito di tempi di elaborazione pi\u00f9 lunghi.<\/p>\n<p>Per comprimere un file:<\/p>\n<pre><code>bzip2 larger.txt\r\n<\/code><\/pre>\n<p>Il file risultante avr\u00e0 estensione:<\/p>\n<pre><code>larger.txt.bz2\r\n<\/code><\/pre>\n<p>Per decomprimerlo:<\/p>\n<pre><code>bunzip2 larger.txt.bz2\r\n<\/code><\/pre>\n<hr \/>\n<h3>Compressione con <code>xz<\/code><\/h3>\n<p><code>xz<\/code> rappresenta uno degli algoritmi di compressione pi\u00f9 efficienti disponibili in ambiente Linux. Offre un rapporto di compressione molto elevato, risultando particolarmente adatto per file di grandi dimensioni e dati binari.<\/p>\n<p>Per comprimere un file:<\/p>\n<pre><code>xz largest.txt\r\n<\/code><\/pre>\n<p>Il file ottenuto sar\u00e0:<\/p>\n<pre><code>largest.txt.xz\r\n<\/code><\/pre>\n<p>Per decomprimerlo:<\/p>\n<pre><code>unxz largest.txt.xz\r\n<\/code><\/pre>\n<hr \/>\n<h3>Confronto tra i principali algoritmi<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Estensione<\/th>\n<th>Caratteristiche<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>gzip<\/code><\/td>\n<td><code>.gz<\/code><\/td>\n<td>Molto veloce, buon compromesso tra velocit\u00e0 e compressione.<\/td>\n<\/tr>\n<tr>\n<td><code>bzip2<\/code><\/td>\n<td><code>.bz2<\/code><\/td>\n<td>Compressione superiore a gzip, ma pi\u00f9 lenta.<\/td>\n<\/tr>\n<tr>\n<td><code>xz<\/code><\/td>\n<td><code>.xz<\/code><\/td>\n<td>Rapporto di compressione molto elevato, ideale per file di grandi dimensioni.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Compressione e archiviazione<\/h3>\n<p>\u00c8 importante distinguere tra <strong>archiviazione<\/strong> e <strong>compressione<\/strong>.<\/p>\n<p>Gli strumenti appena descritti comprimono un singolo file alla volta. Per comprimere pi\u00f9 file o intere directory si utilizza normalmente <code>tar<\/code> insieme a uno di questi algoritmi.<\/p>\n<p>Ad esempio:<\/p>\n<p>Creare un archivio compresso con GZIP:<\/p>\n<pre><code>tar -czf archivio.tar.gz directory\/\r\n<\/code><\/pre>\n<p>Creare un archivio compresso con BZIP2:<\/p>\n<pre><code>tar -cjf archivio.tar.bz2 directory\/\r\n<\/code><\/pre>\n<p>Creare un archivio compresso con XZ:<\/p>\n<pre><code>tar -cJf archivio.tar.xz directory\/\r\n<\/code><\/pre>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> <code>gzip<\/code>, <code>bzip2<\/code> e <code>xz<\/code> comprimono un singolo file. Per comprimere intere directory si utilizza generalmente <code>tar<\/code> insieme a uno di questi algoritmi.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Per la maggior parte delle attivit\u00e0 quotidiane, <code>gzip<\/code> rappresenta la scelta migliore grazie alla sua velocit\u00e0. Se l&#8217;obiettivo \u00e8 ottenere la massima compressione, ad esempio per archiviare backup o distribuire software, \u00e8 preferibile utilizzare <code>xz<\/code>. <code>bzip2<\/code> rimane una valida alternativa, anche se oggi viene impiegato meno frequentemente rispetto a <code>xz<\/code>.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>gzip<\/code> e <code>gunzip<\/code> comprimono e decomprimono file con estensione <code>.gz<\/code>.<\/li>\n<li><code>bzip2<\/code> e <code>bunzip2<\/code> utilizzano il formato <code>.bz2<\/code>.<\/li>\n<li><code>xz<\/code> e <code>unxz<\/code> utilizzano il formato <code>.xz<\/code> e offrono il miglior rapporto di compressione.<\/li>\n<li>Per comprimere directory complete si utilizza normalmente <code>tar<\/code> insieme a <code>gzip<\/code>, <code>bzip2<\/code> o <code>xz<\/code>.<\/li>\n<li>La scelta dell&#8217;algoritmo dipende dal compromesso desiderato tra velocit\u00e0 e livello di compressione.<\/li>\n<\/ul>\n<h2>103.4.7 Altri strumenti utili<\/h2>\n<p>Oltre ai comandi per la gestione di file, directory e archivi, Linux mette a disposizione numerose utility che facilitano l&#8217;identificazione dei file e la selezione di gruppi di elementi attraverso i cosiddetti <strong>metacaratteri (wildcard)<\/strong>. Questi strumenti semplificano il lavoro quotidiano dell&#8217;amministratore di sistema e sono ampiamente utilizzati negli script Bash.<\/p>\n<p>In questa sezione analizzeremo il comando <code>file<\/code> e il meccanismo del <strong>file globbing<\/strong>, fondamentale per selezionare rapidamente uno o pi\u00f9 file.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante conoscere il comando <code>file<\/code> e i principali caratteri jolly utilizzati dal file globbing: <code>*<\/code>, <code>?<\/code> e <code>[]<\/code>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Identificare il tipo di un file con <code>file<\/code><\/h3>\n<p>L&#8217;estensione di un file non sempre indica il suo reale contenuto. Linux determina il tipo di un file analizzandone i dati interni anzich\u00e9 il nome.<\/p>\n<p>Il comando <code>file<\/code> permette di identificare il tipo di un file.<\/p>\n<p>Esempio:<\/p>\n<pre><code>file unknown.txt\r\n<\/code><\/pre>\n<p>Possibile output:<\/p>\n<pre><code>unknown.txt: ASCII text\r\n<\/code><\/pre>\n<p>Altri esempi:<\/p>\n<pre><code>file immagine.png\r\n<\/code><\/pre>\n<p>Output:<\/p>\n<pre><code>immagine.png: PNG image data\r\n<\/code><\/pre>\n<p>Oppure:<\/p>\n<pre><code>file archivio.tar.gz\r\n<\/code><\/pre>\n<p>Output:<\/p>\n<pre><code>archivio.tar.gz: gzip compressed data\r\n<\/code><\/pre>\n<p>Questo comando \u00e8 particolarmente utile quando si lavora con file privi di estensione o provenienti da sorgenti esterne.<\/p>\n<hr \/>\n<h3>Il File Globbing<\/h3>\n<p>Il <strong>file globbing<\/strong> \u00e8 un meccanismo della shell che permette di selezionare gruppi di file utilizzando caratteri jolly (<em>wildcard<\/em>).<\/p>\n<p>Prima che il comando venga eseguito, \u00e8 la shell stessa a sostituire i metacaratteri con i nomi dei file corrispondenti.<\/p>\n<p>Ad esempio:<\/p>\n<pre><code>ls *.txt\r\n<\/code><\/pre>\n<p>Se nella directory sono presenti:<\/p>\n<pre><code>note.txt\r\nconfig.txt\r\nbackup.log\r\n<\/code><\/pre>\n<p>la shell eseguir\u00e0 automaticamente:<\/p>\n<pre><code>ls note.txt config.txt\r\n<\/code><\/pre>\n<p>Mostrando solamente i file con estensione <code>.txt<\/code>.<\/p>\n<hr \/>\n<h3>I principali caratteri jolly<\/h3>\n<table>\n<thead>\n<tr>\n<th>Carattere<\/th>\n<th>Significato<\/th>\n<th>Esempio<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>*<\/code><\/td>\n<td>Corrisponde a zero o pi\u00f9 caratteri.<\/td>\n<td><code>*.txt<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>?<\/code><\/td>\n<td>Corrisponde a un solo carattere.<\/td>\n<td><code>file?.txt<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>[]<\/code><\/td>\n<td>Corrisponde a uno dei caratteri specificati.<\/td>\n<td><code>file[123].txt<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Esempi pratici di globbing<\/h3>\n<p>Elencare tutti i file di testo:<\/p>\n<pre><code>ls *.txt\r\n<\/code><\/pre>\n<p>Visualizzare i file con un solo carattere dopo &#8220;file&#8221;:<\/p>\n<pre><code>ls file?.txt\r\n<\/code><\/pre>\n<p>Selezionare i file numerati da 1 a 3:<\/p>\n<pre><code>ls file[1-3].txt\r\n<\/code><\/pre>\n<p>\u00c8 possibile utilizzare i metacaratteri con moltissimi comandi, ad esempio:<\/p>\n<pre><code>cp *.conf backup\/\r\n<\/code><\/pre>\n<p>oppure:<\/p>\n<pre><code>rm *.tmp\r\n<\/code><\/pre>\n<hr \/>\n<h3>Globbing e ricerca con <code>find<\/code><\/h3>\n<p>\u00c8 importante distinguere il file globbing dal comando <code>find<\/code>.<\/p>\n<ul>\n<li>Il <strong>globbing<\/strong> seleziona i file presenti nella directory corrente (o nel percorso specificato).<\/li>\n<li><code>find<\/code> esplora ricorsivamente il filesystem e consente ricerche molto pi\u00f9 avanzate.<\/li>\n<\/ul>\n<p>Entrambi gli strumenti utilizzano caratteri jolly, ma operano in modo differente.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> I caratteri jolly vengono interpretati dalla shell <strong>prima<\/strong> dell&#8217;esecuzione del comando. Non \u00e8 il comando stesso a espandere il pattern, ma la shell.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Utilizza il file globbing per selezionare rapidamente gruppi di file durante le operazioni quotidiane. Prima di eseguire comandi potenzialmente distruttivi, come <code>rm *.log<\/code>, verifica sempre quali file verranno selezionati eseguendo prima un comando innocuo, ad esempio <code>ls *.log<\/code>.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>file<\/code> identifica il tipo reale di un file analizzandone il contenuto.<\/li>\n<li>Il file globbing utilizza caratteri jolly per selezionare gruppi di file.<\/li>\n<li><code>*<\/code> corrisponde a qualsiasi sequenza di caratteri.<\/li>\n<li><code>?<\/code> corrisponde a un singolo carattere.<\/li>\n<li><code>[]<\/code> seleziona uno dei caratteri specificati o un intervallo.<\/li>\n<li>Il globbing viene eseguito dalla shell prima dell&#8217;esecuzione del comando.<\/li>\n<\/ul>\n<h2>\ud83d\udcda Riepilogo della lezione<\/h2>\n<p>In questa lezione hai imparato a gestire file e directory utilizzando i principali strumenti messi a disposizione da GNU\/Linux. Hai scoperto come creare, copiare, spostare e rimuovere file, amministrare le directory, ricercare elementi nel filesystem e utilizzare strumenti dedicati all&#8217;archiviazione, al backup e alla compressione dei dati.<\/p>\n<p>Hai inoltre approfondito il funzionamento del comando <code>find<\/code>, delle utility di compressione pi\u00f9 diffuse e del meccanismo di <strong>file globbing<\/strong>, fondamentale per selezionare gruppi di file tramite caratteri jolly.<\/p>\n<h3>Concetti principali<\/h3>\n<ul>\n<li>Hai imparato a copiare, spostare, rinominare ed eliminare file e directory con <code>cp<\/code>, <code>mv<\/code> e <code>rm<\/code>.<\/li>\n<li>Hai utilizzato <code>mkdir<\/code>, <code>rmdir<\/code>, <code>ls<\/code> e <code>touch<\/code> per gestire il contenuto del filesystem.<\/li>\n<li>Hai imparato a ricercare file mediante il comando <code>find<\/code> utilizzando diversi criteri di selezione.<\/li>\n<li>Hai conosciuto gli strumenti di archiviazione <code>tar<\/code>, <code>cpio<\/code> e <code>dd<\/code>.<\/li>\n<li>Hai compreso le differenze tra gli algoritmi di compressione <code>gzip<\/code>, <code>bzip2<\/code> e <code>xz<\/code>.<\/li>\n<li>Hai utilizzato il comando <code>file<\/code> per identificare il tipo reale dei file.<\/li>\n<li>Hai scoperto il funzionamento del <strong>file globbing<\/strong> mediante i caratteri jolly <code>*<\/code>, <code>?<\/code> e <code>[]<\/code>.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\ud83c\udfaf Obiettivo raggiunto<\/strong> Al termine di questa lezione sei in grado di gestire efficacemente file e directory, ricercare informazioni nel filesystem, creare archivi, comprimere dati e utilizzare i principali strumenti di amministrazione del filesystem Linux.<\/p>\n<\/blockquote>\n<h3>Comandi da ricordare<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>cp<\/code><\/td>\n<td>Copia file e directory.<\/td>\n<\/tr>\n<tr>\n<td><code>mv<\/code><\/td>\n<td>Sposta o rinomina file e directory.<\/td>\n<\/tr>\n<tr>\n<td><code>rm<\/code><\/td>\n<td>Elimina file e directory.<\/td>\n<\/tr>\n<tr>\n<td><code>mkdir<\/code><\/td>\n<td>Crea nuove directory.<\/td>\n<\/tr>\n<tr>\n<td><code>rmdir<\/code><\/td>\n<td>Elimina directory vuote.<\/td>\n<\/tr>\n<tr>\n<td><code>ls<\/code><\/td>\n<td>Visualizza il contenuto di una directory.<\/td>\n<\/tr>\n<tr>\n<td><code>touch<\/code><\/td>\n<td>Crea file vuoti o aggiorna il timestamp.<\/td>\n<\/tr>\n<tr>\n<td><code>find<\/code><\/td>\n<td>Ricerca file e directory nel filesystem.<\/td>\n<\/tr>\n<tr>\n<td><code>tar<\/code><\/td>\n<td>Crea ed estrae archivi.<\/td>\n<\/tr>\n<tr>\n<td><code>cpio<\/code><\/td>\n<td>Gestisce archivi tramite lo standard input.<\/td>\n<\/tr>\n<tr>\n<td><code>dd<\/code><\/td>\n<td>Esegue copie a basso livello di dischi e partizioni.<\/td>\n<\/tr>\n<tr>\n<td><code>gzip<\/code> \/ <code>gunzip<\/code><\/td>\n<td>Comprime e decomprime file nel formato GZIP.<\/td>\n<\/tr>\n<tr>\n<td><code>bzip2<\/code> \/ <code>bunzip2<\/code><\/td>\n<td>Comprime e decomprime file nel formato BZIP2.<\/td>\n<\/tr>\n<tr>\n<td><code>xz<\/code> \/ <code>unxz<\/code><\/td>\n<td>Comprime e decomprime file nel formato XZ.<\/td>\n<\/tr>\n<tr>\n<td><code>file<\/code><\/td>\n<td>Identifica il tipo reale di un file.<\/td>\n<\/tr>\n<tr>\n<td><code>*<\/code>, <code>?<\/code>, <code>[]<\/code><\/td>\n<td>Metacaratteri utilizzati dal file globbing.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\ud83d\udca1 Preparazione all&#8217;esame LPIC-1<\/strong> Prima di proseguire assicurati di conoscere i principali comandi per la gestione del filesystem, le differenze tra archiviazione e compressione, l&#8217;utilizzo del comando <code>find<\/code>, le utility di backup e il funzionamento dei caratteri jolly della shell. Questi argomenti sono frequentemente presenti nelle domande dell&#8217;esame LPIC-1.<\/p>\n<\/blockquote>\n<hr \/>\n<h2>\u27a1\ufe0f Prossima lezione<\/h2>\n<p>Nella prossima lezione (<strong>103.5 Creare, monitorare e terminare i processi<\/strong>) scoprirai come Linux gestisce i processi in esecuzione. Imparerai a visualizzarli, monitorarne lo stato, controllarne il consumo di risorse e terminarli utilizzando i principali strumenti di amministrazione del sistema.<\/p>\n<blockquote>\n<p><strong>\ud83d\udcd6 Materiale di approfondimento<\/strong> Consulta il PDF allegato alla lezione per esercitarti con laboratori guidati, scenari realistici e quiz di autovalutazione.<\/p>\n<\/blockquote>\n","protected":false},"comment_status":"open","ping_status":"closed","template":"","class_list":["post-3638","lesson","type-lesson","status-publish","has-post-thumbnail","hentry"],"uagb_featured_image_src":[],"uagb_author_info":{"display_name":"Rootmail Academy","author_link":"https:\/\/rootmail.it\/en\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"103.4 Gestire file e directory La gestione di file e directory rappresenta una delle attivit\u00e0 pi\u00f9 frequenti per qualsiasi utente o amministratore Linux. Creare nuove cartelle, copiare documenti, spostare file, rinominarli o eliminarli sono operazioni quotidiane che richiedono familiarit\u00e0 con i principali comandi della shell. GNU\/Linux mette a disposizione un insieme di strumenti semplici ma&hellip;","_links":{"self":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson\/3638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson"}],"about":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/types\/lesson"}],"replies":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/comments?post=3638"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media\/3676"}],"wp:attachment":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media?parent=3638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}