LS - WHICH - LOCATE - FIND

 ls Visualizza il contenuto di una directory. Corrisponde al "dir" di Windows.

ls [opzioni] [file]
-a Visualizza tutti i file, anche quelli nascosti (che iniziano con un punto: .)
-l (--format=long) Visualizza informazioni aggiuntive quali data di modifica, permessi, owner e group
-i (--inode) Visualizza anche l'inode dei file
-f Non esegue alcun ordinamento di file e li visualizza nell'ordine con cui sono stati memorizzati (di default ls fa un elenco in ordine alfabetico)
-t (--sort=time) Ordina l'elenco dei file secondo la data di modifica
-u (--time=access) Ordina l'elenco dei file secondo la data di ultimo accesso
-S (--tsort=size) Ordina l'elenco dei file secondo la dimensione
-r (--reverse) Ordina in senso inverso l'output dei file (da usare con -t, -u, -S ecc.)
-X (----sort=extension) Ordina i file per estensione
-R (--recursive) Elenca ricorsivamente tutte le sottodirectory e i file ivi contenuti, rispetto alla directory specificata (o corrente)
-I pattern (--ignore pattern) Non visualizza i file che matchano il pattern specificato

ls -d  <nome_direcotry>

ls -lh utile per vedere la dimensione del file in MB

ls -lrt | less
Permette di scorrere la lista premendo il pulsante "spazio" della tastiera. Si esco premendo su "e".


which cerca i binari in $PATH
#which useradd
/usr//sbin/useradd


locate <nome file>
Se restituisce il messaggio:
locate: can not stat () '/var/lib/mlocate/mlocate.db'
Effettuate il comando segunte e riprovare
# updatedb
Se successivamente viene creato un nuovo file "prova", il comando
locate prova 
non lo trova. Bisogna rilanciare updatedb.


find 
Comando estremamente utile per cercare particolari gruppi di file; funziona percorrendo l'albero delle directory a partire da ogni percorso indicato dall'argomento percorsi_di_file e rintraccia i file che soddisfano determinate condizioni. Il percorso di default è la directory corrente.
find [percorsi_di_file] [condizioni] find [percorsi_di_file] [condizioni]
-print Stampa file e directory per i quali sono verificate le condizioni imposte, mostrandone il percorso completo.
-name [pattern] Trova i file i cui nomi contengono una corrispondenza con i pattern.
-iname [pattern] Versione insensibile alle maiuscole-minuscole di -name.
-type [x] Cerca file di vario tipo: b (file speciale di blocco), c (file speciale di caratteri), d (directory), p (fifo o pipe), l (link simbolico), s (socket), oppure f (file normale).
-follow Segue i link simbolici e tiene traccia delle directory visitate (non usare con -type l)
-exec [comando { } \;] Esegue il comando Unix, a partire dalla directory di partenza su ogni file per il quale find ha tracciato una corrispondenza. All'esecuzione del comando, l'argomento { } sostituisce il file corrente.
-size [n(c)] Cerca i file contenenti n blocchi, o se c è specificato, lunghi n caratteri.
-mtime [+n | -n | n] Trova tutti file che sono stati modificati più di n (+n), meno n (-n), o n giorni prima della data corrente. La modifica riguarda il cambiamento della data del file.
-atime [+n | -n | n] Trova tutti i file per i quali l'ultimo accesso risale a più di n (+n), meno di n (-n), o esattamente n giorni prima della data corrente. E' importante notare che find modifica la data/ora.
-ctime [+n | -n | n] Trova tutti i file modificati più di n (+n), meno di n (-n), o esattamente n giorni prima della data corrente.
-user [utente] Cerca i file il cui proprietario è l'utente.
-ok [comando { } \;] Come -exec, con la differenza che chiede all'utente la conferma (y) per eseguire il comando.
-path [pattern] Cerca i file i cui nomi contengono una corrispondenza con il pattern.
-ipath [pattern] Versione insensibile alle maiuscole-minuscole di -path.
-depth Processa i file contenuti in ciascuna directory prima della directory stessa. Utile se i file risiedono in directory non scrivibili.
-xdev Dice a find di non cambiare filesystem. Utile quando occore cercare qualcosa nel file system di root.
-cnewer [file] Cerca i file cambiati dopo la loro ultima modifica.
-nouser Cerca file per i quale lo userID non corrisponde ad alcun utente.
-noleaf Toglie l'ottimazione che dice "una directory contine due sotto directory in meno, da indicare del conteggio dei link". Questa azione è necessaria quando si effetuano ricerche all'interno di filesystem che non seguono le convenzioni Unix.
-newer [file] Cerca i file modificati più di recente; simile a -mtime.
-anewer [file] Cerca file per i quali si è verificato un accesso dopo l'ultima modifica.
-cnewer [file] Cerca file cambiati dopo l'ultima modifica.
-cmin [+n | -n | n] Cerca file modificati più di n (+n), meno di n (-n), o esattamente n minuti prima dell'ora corrente.
-daystart Calcola i tempi a partire dall'inizio del giorno corrente, non da 24 ore prima.

Esempio:
find /directory/ -name "nome_file"
la /directory/ è il punto di partenza della ricerca, ovviamente al posto di "nome_file" c'è l'eventuale indicazione del file (possono essere utilizzati anche caratteri jolly come * e ?). Il comando sopra riportato è comodo perchè può essere utilizzato anche da utenti non-root.

Cercare file modificati più di 4 giorni fa:
find . -maxdepth 1 -mtime +4 -exec  ls -ltr {} \;

Cancellare file più vecchi di 4 giorni:
find . -mtime +4 -exec  rm {} \;

Cercare file più grande di 1GB sotto la directory root /
find / -type f -size +1G -ls

Cercare tutti i file che contengono la parola "student" sotto /etc.
find /etc - exec grep -l student {} \; 

Se non si vogliono visualizzare i messaggi di errore, indirizzare lo std error in /dev/null
find /etc - exec grep -l student {} \; 2> /dev/null

Copiare sotto la directory tmp il risultao della precedente find
find /etc - exec grep -l student {} \; -exec cp {} /tmp \; 2> /dev/null

Copiare tutte le parole che inziano con a da /etc alla directory /tmp/files.
find /etc -type f -name "a*" -exec cp {} /tmp/files \; 

Copiare sotto la directory "/tmp/findresults" tutti i file dell'utente frank
find / -user frank -exec cp -a {} /tmp/findresults \; 

Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database