Home > Linux > Comandi Linux : elencare, cercare e gestire files e directories

Comandi Linux : elencare, cercare e gestire files e directories

Elencare i files

ls     elenca i files della directory attuale ad esclusione dei files nascosti (.) 
ls -a elenca tutti i file nella directory attuale, inclusi i file nascosti (iniziano con . )

ls -lhG   # dettaglio dimensione in formato semplificato (human)  G non group

ls -ltra    #elenca in dettaglio(-l), data creazione  decresente  e anche i file nascosti (a)

ls -t   cronologicamente (i più recenti prima)
ls -S  per dimensione (i più grandi prima)
ls -r   nell’ordine inverso

ls  -lSr  opzioni  -S (per dimensione crescente)   -t ( per data )  -r (ordine inverso)
ls -ltr

ls -l *eth*.?   elenca tutti i file che contengolo la substring eth e terminano con un carattere singolo

dir  elncare files

Gestire files e directory

md  dir    o  mkdir  dir   (md esteso mkdir )   crea una directory
md  -p dir1/dir2   Crea directory nidificate:

cd ~maurizio       vai nella directory home dell’utente maurizio
cd newdir    spostarsi nella  directory newdir
cd ..      vai nella dir precedente
cd (directory home)

pwd   mostra l’attuale directory di lavoro

cp source_file dest_file    copia un file in un’altro file
cp -r source_dir dest_dir  Copia le directory ricorsivamente
cp -R source/* target
cp file1 file2 dir   copiare  i files in una directory

mv source_file dest_file   Rinomina un file, un link o una directory:

rm  file1 file2   cancella un file o un link
rmdir  dir  cancella directory vuote
rm -rf dir   cancella directory non vuote

Hard link e Soft link

A volte risulta estremamente efficace accedere a files e direcoty utilizzando dei “puntatori”. Cioè creando files e directory che  “linkano” a contenuti posti in altro percorso.  Per fare riferimento a files due sono le modalità utilizzabili: gli hard links e i soft links.  Per comprendere la differenza tra hard link e soft link considerare che un file in unix consiste di due parti la data part ( inode)  e la filename part.  L’inode contiene la mappa dove sono i dati, permesssi …. La parte filename  consiste di un nome  e dell’inode associato.  Filenames che fanno riferiemento allo stesso inode sono hard links. I Soft links sono files speciali in cui la data part fa riferimento a un altro file e che il SO sa riconoscere.  In questo caso il SO utilizza la data part per accedere per accedere alla risorsa esterna. In unix per fare riferiemento a directory esterne al percorso corrente si possono usare i soft link e in linux gli hard link utilizzando l’opzione -d.

ln  linked-file link   # crea un hard link

ln -s linked_file  link     # crea un link simbolico soft link

# ls -lia 
total 16
1500917 drwxr-xr-x 4 root root 4096 Feb 17 00:58 .
1442107 drwxr-xr-x 4 root root 4096 Feb 16 23:41 ..
1450675 -rw-r--r-- 2 root root    0 Feb 17 00:57 myfile
1450675 -rw-r--r-- 2 root root    0 Feb 17 00:57 myfile-hardlink
1500924 lrwxrwxrwx 1 root root    6 Feb 17 00:58 myfile-softlink -> myfile

Gli hard links hanno lo stesso inode. I soft links hanno inode proprio e diverso.

The difference between hard and soft links LG #105

i link simbolici sono file anche quanto puntano a directory pertanto per rimuovere un link simbolico utilizzare

rm  link-simbolico

Rsync
Copiare directory ricorsivamente con rsync
rsync -a source_dir/  target_dir/

Cercare files

Per effettuare un ricerca veloce utilizzare il comando locate.  Con locate si effettua una ricerca indicizzata nel sistema.  Per una ricerca efficace potrebbe essrere necessario aggiornare l’indice con il comando updatedb.

locate “*pub*”

Per ricercare i files nuovi  aggiornare l’indice con:

sudo updatedb

Trova tutti i file nella directory attuale (.) e nelle sue sottodirectory con eth nel nome:

find . -name “*eth*”

Trova tutti i file .pdf in dir e nelle sotto- directory ed esegui un comando su ciascuno:

find . -name “*.pdf” -exec xpdf {} ‘;’

usare le regularexpression  in e grep

sudo find / -regex ‘.+\.cfg’ | grep ‘WA’

Cercare file di una certa dimensione in Linux

cercare file per dimensioni in tutto il file sistem

sudo find / -size +100M 

cercare file per dimensioni > 100M in tutto il file system ad esclusione della cartelle che iniziano con “h”

sudo find /[^h]*  -size +100M 

trovare files maggiori di 100MB e visualizzare i dettagli con ls nella directory corrente

find ./ -size +750M -exec ls -lhG {} \;

cercare con find i  file maggiori di 50MB e visualizzamdo i file in forma essenziale con -exec ls e awk

sudo find / -type f -size +50M -exec ls -lh {} \; | awk ‘{ print $9 “: ” $5 }’

sempre con find -exec  e il comando file determinare  il tipo di file

find /home/maurizio/Pictures -type f -exec file ‘{}’ \;

ricerca i files che sono stati modificati negli utlimi 10 giorni

find ./ -iname “*.*” -mtime -10 -type f

-type f   cerca i files e non le directories

Ricercare file in base alla data 

ricerca i file .odt che non vengono modificati da almeno un anno

find ./ -iname “*.odt” -mtime +366  -type f

contare i files in una cartella in modo ricorsivo, wc con l’opzione -l conta o caratteri di ritorno a capo

find . -type f | wc -l

I diritti di accesso ai file

chmod u+w file    aggiungi il permesso di scrittura per l’utente corrente

chown -R newuser:newgroup dir  cambiare user e gruppo  di una directory

chmod -R a+rX  dir    rendi l’intera directory accessibile a tutti   ricorsivamente

chmod g+r     file    aggiungi il permesso di lettura per gli utenti appartenenti al gruppo del file:
chmod o+x    file    aggiungi il permesso di esecuzione per gli (others) altri utenti
chmod a+rw  file   aggiungi il permesso di lettura/scrittura a tutti
chmod a+rX *  rendi il file eseguibile da tutti

E possibile utilizzare anche  comandi del seguente tipo per attribuire i permessi

chmod 764  file 

il numero, in questo caso, rappresenta il tipo di permesso secondo lo schema di seguito, cioè un decimale per ciascuna rappresenzione binaria delle tre classi di utente.

OWNER
(Proprietario)
permesso bit valore set valore
read 4  x 4
write 2  x 2
execute 1  x 1
sum 7
GROUP
(Gruppo)
permessso bit valore set valore
read 4  x 4
write 2  x 2
execute 1
sum 6
OTHER
(altro)
permesso bit valore  set valore
read 4  x 4
write 2
execute 1
sum – byte value 4

dimensioni directory

visualizzare le directory ordinate per dimensione

du -hs * | sort -h -r

du –max-depth=1 | sort -n

Gestire il contenuto dei file

grep sottostringa file    # mostrare solo le linee di un file contenenti una data sottostringa

grep -i sottostringa file    #  ricerca ignorando il maiuscolo/minuscolo

grep -v sottostringa file    # mostra tutte le linee escluse quelle contenenti la sottostringa specificata

grep -r sottostring dir   # ricerca in tutti i file di una directory:

sort file    # ordina le linee diun file

sort -u file  #  (uniche) ordina le linee, mostrando quelle duplicate una sola volta

cat file1 file2  # concatenare e mostrare il contenuto dei file

more file1 file2  # visualizzare il contenuto di più file (fermandosi ad ogni pagina)
less file1 file2  # (migliore: con più opzioni)

head -15 file   # visualizzare le prime n(15) linee di un file

tail -15 file  # mostrare le ultime n (15 ) linee di un file:

Confrontare file e directory

diff file1 file2    # confrontare 2 file

Confrontare 2 file (graficamente):
gvimdiff file1 file2
tkdiff file1 file2
kompare file1 file2

diff -r dir1 dir2    Confronta 2 directory:

Caratteri speciali

 *  qualsiasi carattere qualsiasi lunghezza   ls  *.txt
?    singolo carattere  qualsiasi carattere    ls *.?xt
.*  (. iniziale file nascosti )

Annunci
Categorie:Linux Tag:, , , , , , , , , , , ,
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: