Comandi di gestione dei file (CP - MV - RM - GREP - CAT - TAC - CUT -TR - TOUCH)

cp 
Copia file e directory. Comando flessibile che permette di copiare sia un file su una destinazione data, sia un numero arbitrario di file su una directory d'arrivo. Può essere utile anche come strumento di backup e in script.
cp [opzioni] sorgente destinazione
cp [opzioni] sorgenti... directory_destinazione
OPZIONI POSIX (Valide in tutti gli Unix)
-f (--force) Forza la copia, rimuovendo i file di destinazione preesistenti, se esistenti.
-i (--interactive) Chiede conferma prima di sovrascrivere i file di destinazione (il cp su linux è solitamente un alias di cp -i, per cui di default viene chiesta la conferma alla sovrascrittura).
-p (--preserve) Preserva gli attributi dei file copiati (owner, group, permessi, data di ultima modifica e data di ultimo accesso).
-R (--recursive) Copia le directory ricorsivamente (include file e sottodirectory) rispettando l'integrità di file speciali.
OPZIONI GNU (Tipiche di Linux e altri Unix che usano la versione GNU di cp)
-a (--archive) Corrisponde a cp -dpR e conserva nella copia quanto possibile la struttura e gli attributi dei file originali. Da usare quando si intende fare il backup di directory e file.
-d (--no-dereference) Copia link simbolici come link simbolici piuttosto che copiare i file da essi puntati, e conserva la relazione di hard link tra i file originali anche nelle copie.
-s (--symbolic-link) Crea un link simbolico invece della copia vera e propria dei file o directory.
-u (--update) Nel caso il file di destinazione esiste già, lo sovrascrive solo se ha data di modifica più vecchia.
-v (--verbose) Stampa il nome di ogni file prima di copiarlo.
-b (--backup) Crea copie di backup dei file che stanno per essere sovrascritti o rimossi.
-S SUFFISSO Aggiunge il SUFFISSO specificato a tutti file di backup.
Esempi:
cp -a /etc /backup/ Copia tutta la directory /etc e i suoi contenuti nella directory /backup. Mantiene i link simbolici e i permessi inalterati.
cp /etc/grub.conf /tmp/ Copia il file /etc/grub.conf nella directory /tmp. Se /etc/grub.conf è un symlink, in /tmp/ si ritrova una copia del file a cui il link punta e non un symlink.


mv 
Sposta o rinomina un file o una directory. Notare che su Unix non esiste il corrispondente del comando "rename" di Windows. Il cambiamento di nome di un file viene fatto semplicemente "spostandolo" in un file con nome diverso.
mv [opzioni] sorgente destinazione
mv [opzioni] sorgenti... directory_destinazione
-f (--force) Forza lo spostamento, sovrascrivendo i file di destinazione preesistenti, se esistono.
-i (--interactive) Chiede conferma prima di sovrascrivere i file di destinazione (il mv su Linux è solitamente un alias di mv -i, per cui di default viene chiesta la conferma alla sovrascrittura)
-u (--update) Nel caso il file di destinazione esiste già, lo sovrascrive solo se ha data di modifica più vecchia.
-v (--verbose) Stampa il nome di ogni file prima di spostarlo.
-b (--backup) Crea copie di backup dei file che stanno per essere sovrascritti o rimossi.
-S SUFFISSO Aggiunge il SUFFISSO specificato a tutti file di backup.
Esempi:
mv /directory/file /directory/file_nuovo (Rinomina file in file_nuovo)
mv /directory/file /directory/file_esistente (Sovrascrive file_esistente con file)
mv /directory/file /directory/subdirectory_esistente (Sposta file all'interno di subdirectory_esistente)
mv /directory/subdirectory /directory/subdirectory_nuova (Rinomina subdirectory)
mv /directory/subdirectory /subdirectory_nuova (Sposta, e rinomina, subdirectory)
mv /directory/subdirectory /directory/subdirectory_esistente (Sposta subdirectory all'interno di subdirectory_esistente)


rm 
Cancella file o directory.
ATTENZIONE: IN UNIX NON ESISTE IL "CESTINO", QUANDO UN FILE VIENE CANCELLATO NON E' POSSIBILE RECUPERARLO.
Per poter cancellare un file è necessario avere permessi in scrittura sulla directory che lo contiene, ma NON E' NECESSARIO AVERLI SUL FILE stesso (se non si hanno permessi di scrittura sul file che si vuole cancellare, e che si trova in una directory dove si può scrivere, viene semplicemente richiesta una conferma prima della cancellazione).
Se si vuole cancellare un file in modo definitivo, rendendo impossibile un suo recupero, utilizzare il comando shred.
rm [opzioni] file
-f (--force) Forza la rimozione senza richiesta di conferma.
-i (--interactive) Chiede conferma prima di cancellare i file
-R (-r , --recursive) Se viene indicata una directory la cancella con tutto il suo contenuto (USARE CON CAUTELA)
ATTENZIONE a usare certe opzioni di rm, un comando come rm -rf /* se eseguito come root cancella brutalmente tutto il file system (in realtà ad un certo punto la cancellazione si blocca perchè vengono cancellati alcuni file vitali al funzionamento corrente del sistema, ma il risultato è comunque catastrofico e irreparabile).
Esempi
rm -rf /tmp Cancella tutta la directory /tmp
rm -rf /tmp/* Cancella tutti i file contenuti nella directory /tmp (la directroy rimane vuota)


grep
Il comando grep permette di ricercare una determinata parola o REGEXP pattern all'interno di un file e stampa a video tutte le righe che lo matchano. E' comune in tutti gli Unix.
grep [opzioni] pattern [file]
Il file su cui operare può essere passato direttamente allo standard input di grep. 
Per esempio
grep pippo@pippo.it /var/log/maillog
visualizza tutte le righe che contengono pippo@pippo.it all'interno del file maillog.
oppure scrivere
cat /var/log/maillog | grep pippo@pippo.it

grep 1 2 3
1 opzione, non obbligatoria
2 stringa da cercare, tra apici in presenza di spazi
3 una posizione nella quale cercare

Esempio: Cercare nel file armi.txt le seguenti stringhe.
grep -ir lancia Documents/armi.txt

-i per ignorare maiuscole e minuscole.
-l Stampa solamente i nomi dei file (una sola volta per file) che contengono righe soddisfatte dall'espressione
-r per cercare in maniera ricorsiva in tutti i file e le sottodirectory all'interno del path specificato.

grep -irc lancia Documents
-c stampa il numero di occorrenze di una stringa.

Nel caso di caratteri speciali come $ * ? + usare il backslash:
grep -ir \$46 Documents
Documents/armi.txt:$46rossi
Per uscire da un loop con grep usare Ctrl+C.

Il carattere  ^ permette di selezionare solo le righe che inziano con la parola ricercata.
# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash

Cercare le righe che terminao con "sh" 
grep sh$ /etc/passwd

Per contare le occorrenza di una stringa in un file:
grep <stringa> nome_fle | wc -l

-n Precede ogni riga soddisfatta dall'espressione con il suo numero di riga relativo all'interno del file
-v Non vengono mostrate le righe che contengono le stringhe soddisfatte, ma le rimanenti.
-A# Stampa # righe di testo precedenti a quella per la quale è stata trovata la corrispondenza
-B# Stampa # righe di testo successive a quella per la quale è stata trovata la corrispondenza
-C# Stampa # righe di testo precedenti e successive a quella per la quale è stata trovata la corrispondenza

Cercare tutti i file che contengono la parola root nei file in /etc
# grep '\<root\>' /etc/*

Cercare file che contengono parole con 3 caratteri
 grep '^...$' /etc/*  2> /dev/null



cat
Legge uno o più file e li scrive sullo standard output.
E' il comando Unix più comune per visualizzare un file ASCII senza interruzioni o particolari filtri. 
cat [opzioni] [file]
-v  (--show-nonprinting) Visualizza caratteri di controlli e non stampabili (ad eccezione dei LINEFEED e TAB).
-T  (--show-tabs) Visualizza i caratteri TAB come ^I
-E  (--show-ends) Visualizza $ alla fine di ogni riga (dove c'è un LINEFEED)
-A  (--show-all) Corrisponde a -vET.  Visualizza il contenuto di fileevidenziando la presenza di eventuali caratteri non stampabili (se il file è stato copiato o salvato da Windows avrà dei caratteri di fine riga, non necessari
-n   Numera tutte le righe in output, iniziando da 1.
-w  Ricerca la stringa intera.


Per visualizzare il numero di righe di un file:
cat nome_fle | wc -l

tac
fa lo stesso di cat ma visualizza il file in ordine inverso

cut
Visualizzare il primo campo (filed) del file che hanno come delimitatore (d) "."
cut -f 1 -d : /etc/passwd 
Per visualizzare in ordine 
cut -f 1 -d : /etc/passwd | sort
Per convertire il risualto in Maiuscole
cut -f 1 -d : /etc/passwd | tr [a-z] [A-Z]
cut -f 1 -d : /etc/passwd | tr [:lower:] [:upper:]


touch nome_file --> crea un file vuoto
touch nome_file{0..10}  --> crea 10 file che si chiamano nome_file0, nome_file1, ...nome_file9

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