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
pwd
per 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/folder1
Domanda
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
cd
alla 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.
cd
nella 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
ls
nella directory home di root:[root@localhost root]# ls
Domanda
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]# ls
Domanda
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à
file
per determinare il tipo di file per temp_file11:[root@localhost folder1]# file temp_file11 temp_file11: empty
Utilizzare l'utilità
file
per 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à
file
per scoprire il tipo di file del file "passwd".[root@localhost etc]# file passwd
Domanda
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.txt
Domanda
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> binary
Domanda
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/null
Non 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 directory
Quanto sopra è il risultato del tipo di errore che il comando
ls
ha 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 directory
Domanda
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>&1
Non 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.txt
Utilizzare il comando
cat
per 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.txt
Domanda
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_err
Domanda
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
rm
per 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'? y
Domanda
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 –r
per 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
find
per 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.txt
Domande
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
find
per trovare tutti i file nella "pwd" che hanno una dimensione "inferiore" a 200 kilobyte. Digitare:[root@localhost root]# find . –size -200k
Utilizzare il comando
find
per 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
locate
per 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_file22
Si noti che i tre file creati nel passaggio 1 NON sono stati trovati.
Si forzerà un aggiornamento del database utilizzando
updatedb
per consentirgli di rilevare tutti i file appena creati. Digitare:[root@localhost folder1]# updatedb
Ora riprovare la ricerca. Digitare:
[root@localhost folder1]# locate temp
Domanda
Cosa è successo questa volta?
Tutto fatto con Lab 3.