author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: All Versions tags: - lab exercise - system utilities - cli
Laboratorio 3: Utilità di sistema comuni¶
Obiettivi¶
Dopo aver completato questo laboratorio, sarete in grado di
- Utilizzare le utilità di sistema comuni presenti sulla maggior parte dei sistemi Linux
Tempo stimato per completare questo laboratorio: 70 minuti
Utilità di sistema comuni presenti nei sistemi Linux¶
Gli esercizi di questo laboratorio riguardano l'utilizzo di alcune utilità di sistema di base che sia gli utenti che gli amministratori devono conoscere bene. La maggior parte dei comandi viene utilizzata per navigare e manipolare il file system. Il file system è costituito da file e directory.
Gli esercizi tratteranno l'utilizzo delle utilità –pwd, cd, ls, rm, mv, ftp, cp, touch, mkdir, file, cat, find, e locate.
Esercizio 1¶
cd¶
Il comando cd sta per cambia directory. Inizierete questi laboratori passando ad altre directory sul file system.
Per utilizzare cd¶
-
Accedere al computer come root
-
Passare dalla directory corrente alla directory /etc.
[root@localhost root]# cd /etc -
Si noti che il prompt è cambiato da "[root@localhost root]#" a: "[root@localhost etc]#"
-
Passare alla directory
/usr/local/[root@localhost etc]# cd /usr/local [root@localhost local]#Domanda
Cosa è cambiato nel tuo prompt?
-
Tornare alla directory home di root
[root@localhost local]# cd /root -
Passare nuovamente alla directory /usr/local/. Digitare:
[root@localhost root]# cd /usr/local -
Per passare alla directory principale della directory locale, digitare "cd ..".
[root@localhost local]# cd ..Domanda
Qual è la directory principale della directory /usr/local/?
-
Per tornare rapidamente alla directory home di root, digitare "cd" senza alcun argomento.
[root@localhost usr]# cd [root@localhost root]#
Esercizio 2¶
pwd¶
Il comando pwd sta per "directory di lavoro corrente". Mostra la posizione in cui ti trovi nel file system.
Per utilizzare pwd¶
-
Per scoprire la vostra directory di lavoro attuale, digitare:
[root@localhost root]# pwd /root -
Passare alla directory /usr/local/ utilizzando il comando "cd":
[root@localhost root]# cd /usr/local -
Utilizzare
pwdper trovare la vostra directory di lavoro attuale:[root@localhost local]# pwd /usr/local -
Tornare alla directory home di root:
[root@localhost root]# cd
Esercizio 3¶
mkdir¶
Il comando mkdir viene utilizzato per creare directory. Si creeranno due directory chiamate "folder1" e "folder2".
Per utilizzare mkdir¶
-
Digitare:
[root@localhost root]# mkdir folder1 -
Crea una seconda directory chiamata folder2
[root@localhost root]# mkdir folder2 -
Ora cambiate la vostra directory di lavoro nella directory “folder1” che avete creato sopra.
[root@localhost root]# cd folder1 -
Visualizzare la directory di lavoro corrente.
[root@localhost folder1]# pwd /root/folder1Domanda
Senza uscire dalla directory corrente, passare alla directory “folder2”. Qual è il comando per farlo?
-
Tornare alla directory home di root.
Esercizio 4¶
touch¶
Il comando touch può essere utilizzato per creare file ordinari. Verranno creati i file “file11, file12, file21 e file22” nelle cartelle create sopra.
Per utilizzare touch¶
-
Cambiare directory, ovvero
cdalla folder1 e creare il "file11:"[root@localhost folder1]# touch file11 -
Mentre si è ancora nella folder1, creare “file12:”
[root@localhost folder1]# touch file12 -
Ora ritornare alla directory home di root.
-
cdnella folder2 e creare "file21" e "file22"[root@localhost folder2]# Touch file21 file22 -
Tornare alla directory home di root.
Esercizio 5¶
ls¶
Il comando ls sta per lista. Elenca il contenuto di una directory.
Per utilizzare ls¶
-
Digitare
lsnella directory home di root:[root@localhost root]# lsDomanda
Elenca il contenuto della directory
-
Passare alla directory "folder1"
-
Elencare il contenuto della directory "folder1". Digitare
ls[root@localhost folder1]# ls file11 file12 -
Passare alla directory "folder2" ed elencare il suo contenuto:
-
Tornare alla directory home ed elencare "tutti" i file e le cartelle nascosti:
[root@localhost folder2]# cd [root@localhost root]# ls –a .. .bash_history .bash_logout .bash_profile .bashrc folder1 folder2 .gtkrc .kde screenrc -
Per ottenere un elenco lungo o dettagliato di tutti i file e le cartelle presenti nella directory home, digitare:
[root@localhost root]# ls –al total 44 drwx------ 5 root root 4096 May 8 10:15 . drwxr-xr-x 8 root root 4096 May 8 09:44 .. -rw------- 1 root root 43 May 8 09:48 .bash_history -rw-r--r-- 1 root root 24 May 8 09:44 .bash_logout -rw-r--r-- 1 root root 191 May 8 09:44 .bash_profile -rw-r--r-- 1 root root 124 May 8 09:44 .bashrc drwxrwxr-x 2 root root 4096 May 8 10:17 folder1 drwxrwxr-x 2 root root 4096 May 8 10:18 folder2 ………………………..
Esercizio 6¶
mv¶
Il comando mv sta per muovere. Rinomina file o directory. Può anche spostare i file.
Per utilizzare mv¶
-
Passare alla directory "folder1" ed elencare il suo contenuto:
[root@localhost root]# cd folder1 [root@localhost folder1] ls file11 file12 -
Si rinomineranno i file file11 e file12 nella directory “folder1” rispettivamente in temp_file11 e temp_file12:
[root@localhost folder1]# mv file11 temp_file11 -
Elencare nuovamente il contenuto della folder1.
[root@localhost folder1]# lsDomanda
Annotare i contenuti:
-
Rinominare il file12 in temp_file12:
[root@localhost folder1]# mv file12 temp_file12 -
Senza cambiare directory, rinominare il file21 e il file22 nella "folder2" rispettivamente in temp_file21 e temp_file22:
[root@localhost folder1]# mv /root/folder2/file21 /root/folder2/temp_file21 [root@localhost folder1]# mv /root/folder2/file22 /root/folder2/temp_file22 -
Senza cambiare la directory corrente, elencare il contenuto della folder2.
Domanda
Qual è il comando per farlo? Elencare anche l'output del comando?
Esercizio 7¶
cp¶
Il comando cp sta per copia. Crea copie di file o cartelle.
-
Cambiare la vostra directory nella directory "folder2".
-
Copiare il contenuto della "folder2" (temp_file21 e temp_file22) nella "folder1:"
[root@localhost folder2]# cp temp_file21 temp_file22 ../folder1 -
Elencare il contenuto della folder1.
[root@localhost folder2]# ls ../folder1 temp_file11 temp_file12 temp_file21 temp_file22 -
Elencare il contenuto della folder2. Si noti che le copie originali di temp_file21 e temp_file22 rimangono nella folder2.
[root@localhost folder2]# ls temp_file21 temp_file22
Esercizio 8¶
file¶
L'utilità file viene utilizzata per determinare i tipi di file o directory.
Per utilizzare file¶
-
Tornare alla directory home.
-
Per vedere se "folder1" è un file o una directory, digitare:
[root@localhost root]# file folder1 folder1: directory -
Passare alla folder1
-
Utilizzare l'utilità
fileper determinare il tipo di file per temp_file11:[root@localhost folder1]# file temp_file11 temp_file11: empty -
Utilizzare l'utilità
fileper scoprire il tipo di file di tutti i file presenti nella folder1. Elenco qui: -
Passare alla cartella /etc:
[root@localhost folder1]# cd /etc -
Utilizzare l'utilità
fileper scoprire il tipo di file del file "passwd".[root@localhost etc]# file passwdDomanda
Di che tipo di file si tratta?
Esercizio 9¶
cat¶
Il comando cat è l'abbreviazione di concatenate, cioè mettere insieme i file. Il comando cat visualizza anche il contenuto di un intero file sullo schermo. Si utilizzerà cat insieme al simbolo di reindirizzamento ">" per creare un file.
Per usare cat per creare un file¶
-
Passare alla directory /root/folder1
-
Creare un nuovo file di testo chiamato "first.txt"
[root@localhost folder1]# cat > first.txt -
Digitare la frase seguente nel prompt vuoto e premere Enter.
Questa è una riga di first.txt !! -
Premere contemporaneamente i tasti Ctrl+C.
-
Digitare "cat first.txt" per leggere il testo appena digitato:
[root@localhost folder1]# cat first.txt Questa è una riga di first.txt !! -
Creare un altro file chiamato "second.txt" utilizzando
cat. Digitare il seguente testo nel file – “Questa è una riga di second.txt !!”Domanda
Qual è il comando per farlo?
Per usare cat per concatenare insieme i file¶
-
Si concatenaneranno i file "first.txt" e "second.txt". Digitare:
[root@localhost folder1]# cat first.txt second.txtDomanda
Qual è il vostro risultato?
Esercizio 10¶
ftp¶
ftp è un programma client per l'utilizzo e la connessione ai servizi FTP tramite il File Transfer Protocol. Il programma consente agli utenti di trasferire file da e verso un sito di rete remoto. Si tratta di un'utility che potrebbe essere utilizzata spesso.
In questo esercizio imparerete ad accedere in modo anonimo a un server FTP e a scaricare un file dal server utilizzando un programma client ftp.
Nota
Per poter seguire questo esercizio specifico, che richiede un server FTP disponibile e raggiungibile, è necessario aver completato gli esercizi del laboratorio precedente.
Per utilizzare ftp¶
-
Accedere al computer come root
-
Passare alla directory "/usr/local/src/"
-
Creare una nuova directory chiamata "downloads" nella directory "/usr/local/src/".
Domanda
Qual è il comando per farlo?
-
Passa alla directory "downloads" appena creata
[root@localhost src]# cd downloads -
Digitare "ftp" per avviare il client
ftp:[root@localhost downloads]# ftp ftp> -
Per connettersi al server FTP, digitare:
ftp> open < server-address> (Obtain the <server-address> from your instructor) ……… 220 localhost.localdomain FTP server (Version wu-2.6.2-5) ready. ……….. -
Accedere come utente anonimo. Digitare "anonymous" al prompt:
Name (10.4.51.29:root): anonymous -
Digitare un indirizzo e-mail qualsiasi alla richiesta della password e premere Invio
Password: *************** 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> -
Passare alla modalità binaria. Digitare:
ftp> binaryDomanda
Qual è l'output del comando binario e cos'è la modalità binaria “modalità binaria”?
-
Elencare le directory correnti sul server ftp. Digitare "ls" al prompt ftp. (ftp>):
ftp> ls 227 Entering Passive Mode (10,0,4,5,16,103). 125 Data connection already open; Transfer starting. 11-23-43 10:23PM <DIR> images 11-02-43 02:20PM <DIR> pub 226 Transfer complete. -
Passare alla directory "pub". Digitare:
ftp> cd pub -
Utilizzare il comando "ls" per elencare i file e le directory presenti nella directory "pub"
Domanda
Quanti file e directory ci sono adesso?
-
Scaricare il file denominato "hello-2.1.1.tar.gz" nella directory locale. Digitare "yes" quando richiesto.
ftp> mget hello-2.1.1.tar.gz mget hello-2.1.1.tar.gz? yes 227 Entering Passive Mode (10,0,4,5,16,252). 125 Data connection already open; Transfer starting. 226 Transfer complete. 389363 bytes received in 0.0745 secs (5.1e+03 Kbytes/sec) -
Disconnettersi dal server FTP e chiudere il client
ftp. Digitare:ftp> bye -
Verrai reindirizzato alla tua shell locale.
-
Assicurati di trovarti ancora nella directory "download" del tuo computer locale.
Domanda
Elencare i file nella cartella dei downloads.
Esercizio 11¶
Utilizzo del reindirizzamento¶
La maggior parte delle utility e dei comandi utilizzati in Linux inviano il loro output allo schermo. Lo schermo è chiamato output standard (stdout). Il reindirizzamento consente di inviare l'output altrove – ad esempio in un file.
Ogni programma avviato su un sistema Linux ha tre descrittori di file aperti: stdin (0), stdout (1) e stderr (2). È possibile reindirizzarli o convogliarli individualmente tramite "pipe". I simboli di reindirizzamento sono ">, < "
Per utilizzare il reindirizzamento¶
-
Assicurarsi di essere ancora nella directory folder1.
-
Si utilizzerà il reindirizzamento dell'output per reindirizzare l'output del comando ls (elenco) a un file di testo denominato myredirects:
[root@localhost folder1]# ls > myredirects -
Esaminare il contenuto del nuovo file (myredirects) creato nella directory folder1.
[root@localhost folder1] # cat myredirects temp_file11 temp_file12 temp_file21 temp_file22 myredirects -
Ora il risultato del comando file verrà reindirizzato nello stesso file. Si vuole scoprire il tipo di file per temp_file11 nella directory folder1 e inviare l'output al file myredirects:
[root@localhost folder1]# file temp_file11 > myredirects -
Esaminare il contenuto del file myredirects.
Domanda
È cambiato. Cos'è successo?
-
Se si vuole evitare che si verifichi quanto sopra, si utilizzerà il doppio simbolo di reindirizzamento “>>”. Questo aggiungerà (appenderà) il nuovo output al file invece di sostituirlo. Fate una prova:
[root@localhost folder1]# ls >> myredirects -
Ora esaminare nuovamente il contenuto del file myredirects utilizzando
cat.Domanda
Scrivi qui il suo contenuto:
Utilizzo del reindirizzamento per sopprimere l'output di un comando¶
I concetti trattati in questa sezione saranno molto utili in Linux, quindi ti invitiamo a prestare particolare attenzione. Può essere un po' complicato.
Ci saranno momenti in cui non vorrai che l'utente veda l'output di un comando, ad esempio un messaggio di errore. Questo accade solitamente perché i messaggi di errore strani spesso spaventano gli utenti abituali. In questo esercizio si invierà l'output tuoi comandi al dispositivo nullo ( /dev/null/ ). Il dispositivo nullo è come un "bit bucket". Tutto ciò che metti dentro scompare per sempre. È anche possibile inviare (o reindirizzare) l'output regolare dei comandi al dispositivo nullo "null device".
Utilizzare le linee guida riportate di seguito:
|Redirector|<p></p><p>Function</p>|
| :- | :- |
|> file|Indirizza l'output standard su un file|
|< file|Prende l'input standard dal file|
|Cmd1 | cmd2|Pipe; prende lo standard out da cmd1 come input standard per cmd2|
|n> file|Descritore di file n a file|
|N< file|Imposta il file come descrittore di file n|
|>&n|Duplica l'output standard nel descrittore di file n|
|<&n|Duplica l'input standard dal descrittore di file n|
|&>file|Indirizza l'output standard e l'errore standard al file|
-
Assicurarsi di essere ancora nella directory folder1. Utilizzare l'opzione di elenco esteso del comando ls su temp_file11:
[root@localhost folder1]# ls –l temp_file11 -rw-r--r-- 1 root root 0 Jul 26 18:26 temp_file11 -
Reindirizzare l'output dello stesso comando sopra riportato (ls –l temp_file11) al dispositivo nullo.
[root@localhost folder1]# ls –l temp_file11 > /dev/nullNon si dovrebbe ottenere alcun risultato.
-
Ora, se per sbaglio viene digitato in modo errato il nome del file di cui si desidera visualizzare le informazioni, verrà visualizzato il seguente messaggio:
[root@localhost folder1]# ls –l te_file1 ls: te_file1: No such file or directoryQuanto sopra è il risultato del tipo di errore che il comando
lsha programmato di restituire. -
Eseguire lo stesso comando di cui sopra con un nome file scritto in modo errato e reindirizzarlo a /dev/null
[root@localhost folder1]# ls -l te_file1 > /dev/null ls: te_file1: No such file or directoryDomanda
Cosa è successo qui? Perché l'output continuava a essere visualizzato sullo schermo (stdout)?
-
Per vari motivi potresti voler sopprimere messaggi di errore come quello sopra riportato. Per farlo, digitare:
[root@localhost folder1]# ls –l te_file1 > /dev/null 2>&1Non otterrete alcun risultato.
Questa volta vengono soppressi sia l'output standard che l'errore standard.
L'ordine di reindirizzamento è IMPORTANTE!!
Il reindirizzamento viene letto da sinistra a destra sulla riga di comando.
La parte più a sinistra del simbolo di reindirizzamento - “>”: invierà l'output standard (stdout) a /dev/null. Quindi la parte più a destra del reindirizzamento - “2>&1 ”: duplicherà l'errore standard (2) nell'output standard (1).
Quindi il comando sopra riportato può essere letto come: reindirizza stdout(1) a “/dev/null” e poi copia stderr (2) su stdout
-
Per dimostrare ulteriormente l'importanza dell'ordine di reindirizzamento, prova:
[root@localhost folder1]# ls –l tem_file 2>&1 > order.txtUtilizzare il comando
catper esaminare il contenuto del file "order.txt"La parte più a sinistra – “2>&1” copierà l'errore standard nell'output standard. Quindi, la parte più a destra di quanto sopra – “ > order.txt” reindirizza stdout al file order.txt.
-
Provare questa variante del passaggio precedente:
[root@localhost folder1]# ls –l hgh_ghz 2> order2.txt > order2.txtDomanda
Esamina il file "order2.txt" e spiega cosa è successo?
-
Per inviare l'output standard e l'errore standard a file separati; Digitare:
[root@localhost folder1]# ls –l tep_f > standard_out 2> standard_errDomanda
Sono stati creati due nuovi file. Quali sono i nomi dei file e qual è il loro contenuto?
-
È possibile reindirizzare sia stdout che stderr allo stesso file utilizzando:
[root@localhost folder1]# ls –l te_fil &> standard_both
Esercizio 12¶
rm¶
Il comando rm viene utilizzato per eliminare file o directory. Si utilizzerà il comando rm per eliminare alcuni dei file creati negli esercizi precedenti.
Per utilizzare rm¶
-
Mentre si è ancora nella directory "folder1", eliminare il file standard_err. Digitare "y" alla richiesta di conferma:
[root@localhost folder1]# rm standard_err rm: remove `standard_err'? y -
Eliminare il file "standard_out". Per evitare che venga richiesta la conferma prima di eliminare un file, utilizzare l'opzione "–f " con il comando
rm:[root@localhost folder1]# rm -f standard_out -
Ritornare alla directory home (/root) ed eliminare la directory "folder2". Se si vuole usare
rmper eliminare una cartella, bisogna usare l'opzione “–r”:[root@localhost root]# rm -r folder2 rm: descend into directory `folder2'? y rm: remove `folder2/temp_file21'? y rm: remove `folder2/temp_file22'? y rm: remove directory `folder2'? yDomanda
Vi è stato nuovamente chiesto di confermare la rimozione di ogni singolo file nella directory e della directory stessa. Quale opzione si utilizzerà con il comando
rm –rper evitare che ciò accada?
Esercizio 13¶
Imparare vi¶
vi è un editor di testo. Può essere utilizzato per modificare tutti i tipi di testo semplice. È particolarmente utile per i programmi di editing.
vi è un mostro enorme che può fare praticamente tutto, compreso prepararti il caffè o la cioccolata calda!!
Invece di cercare di insegnarvi vi, questo esercizio vi indicherà uno strumento che vi consentirà di familiarizzare meglio con vi.
Vi invitiamo a dedicare un po' di tempo alla lettura del tutorial online su vi (più precisamente su vim). Basta seguire le istruzioni.
Per imparare vi¶
-
Una volta effettuato l'accesso al sistema, digitare:
[root@localhost root]# vimtutor
Esercizio 14¶
Ricerca di file: (find e locate)¶
Questo esercizio tratterà due delle utility più diffuse utilizzate per la ricerca di file e directory nel file system. Si tratta dei comandi find e locate.
find¶
L'utilità find esiste da molto tempo. Esegue una scansione ricorsiva delle directory per trovare i file che corrispondono a un determinato criterio.
La sintassi generale per find è:
find [path] [options] [criterion] [action]
Se non si specifica alcuna directory o percorso, find cercherà nella directory corrente. Se non si specifica alcun criterio, ciò equivale a "vero", quindi verranno trovati tutti i file. L'utilità find offre numerose opzioni per eseguire praticamente qualsiasi tipo di ricerca di un file. Di seguito sono elencate solo alcune delle opzioni, dei criteri e delle azioni disponibili.
OPZIONI:
-xdev: non effettuare ricerche nelle directory situate su altri file system.;
-mindepth <n> scendere di almeno <n> livelli al di sotto della directory specificata prima della
ricerca di file;
-maxdepth <n>: cerca i file che si trovano al massimo a n livelli sotto la directory specificata;
-follow: segui i collegamenti simbolici se puntano a directory.
-daystart: quando si utilizzano test relativi al tempo (vedi sotto), prendere l'inizio del giorno corrente come timestamp invece del valore predefinito (24 ore prima dell'ora corrente).
CRITERIO
-type <type>: cerca un determinato tipo di file; <type> può essere uno dei seguenti: f (file regolare), d (directory),
l (collegamento simbolico), s (socket), b (file in modalità blocco), c (file in modalità carattere) o
p (pipe con nome);
-name <pattern>: trova i file i cui nomi corrispondono al modello specificato <pattern>;
-iname <pattern>: like -name, but ignore case;
-atime <n>, -amin <n>: trova i file a cui è stato effettuato l'ultimo accesso <n> giorni fa (-atime) o <n> minuti fa (-amin). È anche possibile specificare +<n> o -<n>, nel qual caso la ricerca verrà effettuata rispettivamente sui file a cui è stato effettuato l'accesso al massimo o al minimo <n> giorni/minuti fa;
-anewer <file>: trova i file che sono stati aperti più di recente rispetto al file <file>;
-ctime <n>, -cmin <n>, -cnewer <file>: come per -atime, -amin e -anewer, ma si applica all'ultima volta in cui il contenuto del file è stato modificato;
-regex <pattern>: come per -name, ma il pattern viene trattato come un'espressione regolare;
-iregex <pattern>: come per -regex, ma ignora le maiuscole/minuscole.
AZIONE:
-print: stampa semplicemente il nome di ogni file sullo standard output. Questa è l'azione predefinita;
-ls: stampa sullo standard output l'equivalente di ls -ilds per ogni file trovato;
-exec <command>: execute command <command> su ogni file trovato. La riga di comando <command> deve terminare con un ;, che deve essere preceduto dal carattere di escape in modo che la shell non lo interpreti; la posizione del file è contrassegnata da {}.
-ok <command>: come per -exec, ma richiede una conferma per ogni comando.
Per utilizzare find¶
-
Assicurarsi di trovarsi nella directory home.
-
Utilizzare il comando find per visualizzare tutti i file nella directory corrente (
pwd). Digitare:[root@localhost root]# find ……….. ./.bash_profile ./.bashrc ./.cshrc ./.tcshrc ./.viminfo ./folder1 ./folder1/first.txt …………Il risultato mostra il comportamento predefinito di find quando viene utilizzato senza alcuna opzione.
Visualizza tutti i file e le directory (compresi i file nascosti) nella directory di lavoro in modo ricorsivo.
-
Ora utilizzare
findper trovare solo le directory nella tua pwd. Digitare:[root@localhost root]# find -type d . ./folder1 ./folder2 ………Domande
Dal comando sopra riportato "find –type d"; cos'è l'"opzione", cos'è il "percorso", cos'è il "criterio" e infine cos'è l'"azione"?
-
Successivamente si cercheranno tutti i file presenti nel sistema che terminano con il suffisso “.txt”:
[root@localhost root]# find / -maxdepth 3 -name "*.txt" -print /root/folder1/first.txt /root/folder1/second.txt /root/folder1/order.txt /root/folder1/order2.txtDomande
Sempre dal comando sopra riportato, cosa sono l'"opzione", il "percorso", il "criterio" e infine l'"azione"? (SUGGERIMENTO: L'azione = “- print”)
La ricerca verrà eseguita solo su 3 directory in basso dalla directory “/”.
L'asterisco utilizzato nel comando sopra riportato è uno dei caratteri "jolly" in Linux.
L'uso dei caratteri jolly in Linux è chiamato "globbing".
-
Utilizzare il comando
findper trovare tutti i file nella "pwd" che hanno una dimensione "inferiore" a 200 kilobyte. Digitare:[root@localhost root]# find . –size -200k -
Utilizzare il comando
findper trovare tutti i file nella directory corrente che sono "più grandi" di 10 kilobyte e visualizzare anche il loro "tipo di file". Digitare:[root@localhost root]# find . –size +10k –exec file "{ }" ";"
locate¶
La sintassi del comando find può essere piuttosto difficile da usare in alcuni casi e, a causa della sua ricerca estesa, può essere lenta. Un comando alternativo è locate.
locate effettua una ricerca in un database creato in precedenza contenente tutti i file presenti nel file system.
Si basa sul programma updatedb.
utilizzo della ricerca:
locate [-qi] [-d <path>] [--database=<path>] <search string>...
locate [-r <regexp>] [--regexp=<regexp>]
database usage: locate [-qv] [-o <file>] [--output=<file>]
locate [-e <dir1,dir2,...>] [-f <fs_type1,...> ] [-l <level>]
[-c] <[-U <path>] [-u]>
general usage: locate [-Vh] [--version] [--help]
Per utilizzare locate¶
-
Passare alla directory folder1 e creare i file vuoti temp1, temp2 e temp3:
[root@localhost root]# cd folder1; touch temp1 temp2 temp3 [root@localhost folder1]#Il punto e virgola (;) utilizzato nel comando sopra riportato consente di eseguire più comandi su una singola riga!!
-
Utilizzare
locateper cercare tutti i file nella directory corrente che hanno il suffisso "temp"[root@localhost folder1]# locate temp* /root/folder1/temp_file11 /root/folder1/temp_file12 /root/folder1/temp_file21 /root/folder1/temp_file22Si noti che i tre file creati nel passaggio 1 NON sono stati trovati.
-
Si forzerà un aggiornamento del database utilizzando
updatedbper consentirgli di rilevare tutti i file appena creati. Digitare:[root@localhost folder1]# updatedb -
Ora riprovare la ricerca. Digitare:
[root@localhost folder1]# locate tempDomanda
Cosa è successo questa volta?
-
Tutto fatto con Lab 3.