Guida ai comandi da terminale - Gestione di file e directory: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 364: Riga 364:
''(Grazie a [http://nerotux.tuxfamily.org Nerotux] per gli esempi sull'utilizzo di tar)''
''(Grazie a [http://nerotux.tuxfamily.org Nerotux] per gli esempi sull'utilizzo di tar)''


== Modificare l'ora di accesso a un file ==
== Modificare l'ora di accesso a un file ('''touch''') ==
<code>touch</code> è un comando shell che modifica l'orario di accesso o/e modifica di un file (il cosiddetto '''timestamp'''). I file vengono modificati con l'orario corrente. La sintassi del comando è:
<code>touch</code> è un comando shell che modifica l'orario di accesso o/e modifica di un file (il cosiddetto '''timestamp'''). I file vengono modificati con l'orario corrente. La sintassi del comando è:
<pre>
<pre>
Riga 378: Riga 378:
* <code>-t orario</code>: Usa l'orario specificato come nuovo valore per gli orari cambiati. L'argomento è un numero decimale nella forma [[SS]AA]MMGGoomm[.ss]
* <code>-t orario</code>: Usa l'orario specificato come nuovo valore per gli orari cambiati. L'argomento è un numero decimale nella forma [[SS]AA]MMGGoomm[.ss]
* <code>-d, --date=orario</code>: Usa orario al posto dell'ora corrente. Può contenere il nomi di mese, fusi orari, «am» e «pm», ecc.
* <code>-d, --date=orario</code>: Usa orario al posto dell'ora corrente. Può contenere il nomi di mese, fusi orari, «am» e «pm», ecc.
== Manipolazione di file ==
Un modo veloce (soprattutto negli script) per modificare il contenuto di un file o per accodare altro testo alla sua fine è utilizzare il comando <code>cat</code>.<br>
<code>cat</code> è un comando shell che legge file in sequenza e può scrivere i loro contenuti sullo standard output nella stessa sequenza. Lo scopo di cat è infatti concatenare file (generalmente di testo o che abbiano particolari intestazioni, ad esempio il formato MPEG2 usato dai VOB nei DVD video). Dimenticatevi follie quali "cat file.txt | less" o "cat file.txt | grep foo" perché è definito
[http://en.wikipedia.org/wiki/Cat_%28Unix%29#Useless_use_of_cat UUOC: Useless Use Of Cat] :-)
La sintassi del comando è:
<pre>
cat [opzioni][file ...]
</pre>
Note:
* <code>'''>''' file.estensione</code>: Se nomefile.estensione non esiste, viene creato e viene scritto il valore al suo interno. Nel caso esistesse già, il suo valore '''verrebbe sovrascritto'''.
* <code>'''>>''' nomefile.estensione</code>: Aggiunge alla fine del file il valore che gli date a riga di comando.<br>
Altri comandi utili per la manipolazione veloce di file sono:
* <code>head</code>, che mostra le prime dieci linee di un file. Utile quando si vuole avere un'idea del contenuto di un file senza doverlo aprire con un editor
* <code>tail</code>, che mostra al contrario le ultime dieci linee di un file
=== Esempi ===
Se vogliamo mostrare il contenuto del file di testo <code>/home/ferdy/prova.txt</code>, dobbiamo dare il comando:
<pre>
cat /home/ferdy/prova.txt
</pre>
Se vogliamo aggiungere il contenuto del file <code>/home/ferdy/aggiunte.txt</code> alla fine del file, diamo il seguente comando:
<pre>
cat /home/ferdy/aggiunte.txt >> /home/ferdy/prova.txt
</pre>
Se vogliamo unire i due file e crearne un terzo, diamo il comando:
<pre>
cat /home/ferdy/prova.txt /home/ferdy/aggiunte.txt > /home/ferdy/file_finale.txt
</pre>
Per visualizzare le prime dieci o le ultime dieci linee di un file:
<pre>
head /home/ferdy/prova.txt
tail /home/ferdy/prova.txt
</pre>
Un comando preziosissimo per gli amministratori di sistema è il seguente, che permette di vedere in modo interattivo la variazione di un file di log:
<pre>
tail -f /var/log/syslog | ccze
</pre>
Nell'ultimo comando sono stati usati:
* <code>'''-f</code>''' che permette a <code>tail</code> di seguire (follow) il file e i suoi cambiamenti
* <code>'''| ccze'''</code> che dirige l'output di tail verso il programma <code>ccze</code>, che colorerà l'output del log rendendolo facilmente leggibile
In quest'ultimo esempio, per rilasciare il terminale e riottenerne il pieno utilizzo bisogna stoppare <code>tail</code> con la combinazione di tasti <code>CTRL</code>+<code>C</code>.
Un altro uso interessante di cat è creare file di testo sfruttando lo stdin della shell.
Lanciamo questo comando:
<pre>
cat - > file.txt
</pre>
e possiamo scrivere il nostro testo sfruttando lo standard input come editor, si può correggere solo se non si è andati a capo e si termina con ''Ctrl-d''. <br>


== Creare un collegamento ('''ln''') ==
== Creare un collegamento ('''ln''') ==
Riga 614: Riga 564:
* <code>--delete</code>: elimina dalla directory di destinazione i file non più presenti nella directory sorgente
* <code>--delete</code>: elimina dalla directory di destinazione i file non più presenti nella directory sorgente
Maggiori informazioni [[Rsync | qui]].
Maggiori informazioni [[Rsync | qui]].
== Manipolazione di file ('''cat''') ==
Un modo veloce (soprattutto negli script) per modificare il contenuto di un file o per accodare altro testo alla sua fine è utilizzare il comando <code>cat</code>.<br>
<code>cat</code> è un comando shell che legge file in sequenza e può scrivere i loro contenuti sullo standard output nella stessa sequenza. Lo scopo di cat è infatti concatenare file (generalmente di testo o che abbiano particolari intestazioni, ad esempio il formato MPEG2 usato dai VOB nei DVD video). Dimenticatevi follie quali "cat file.txt | less" o "cat file.txt | grep foo" perché è definito
[http://en.wikipedia.org/wiki/Cat_%28Unix%29#Useless_use_of_cat UUOC: Useless Use Of Cat] :-)
La sintassi del comando è:
<pre>
cat [opzioni][file ...]
</pre>
Note:
* <code>'''>''' file.estensione</code>: Se nomefile.estensione non esiste, viene creato e viene scritto il valore al suo interno. Nel caso esistesse già, il suo valore '''verrebbe sovrascritto'''.
* <code>'''>>''' nomefile.estensione</code>: Aggiunge alla fine del file il valore che gli date a riga di comando.<br>
Altri comandi utili per la manipolazione veloce di file sono:
* <code>head</code>, che mostra le prime dieci linee di un file. Utile quando si vuole avere un'idea del contenuto di un file senza doverlo aprire con un editor
* <code>tail</code>, che mostra al contrario le ultime dieci linee di un file
=== Esempi ===
Se vogliamo mostrare il contenuto del file di testo <code>/home/ferdy/prova.txt</code>, dobbiamo dare il comando:
<pre>
cat /home/ferdy/prova.txt
</pre>
Se vogliamo aggiungere il contenuto del file <code>/home/ferdy/aggiunte.txt</code> alla fine del file, diamo il seguente comando:
<pre>
cat /home/ferdy/aggiunte.txt >> /home/ferdy/prova.txt
</pre>
Se vogliamo unire i due file e crearne un terzo, diamo il comando:
<pre>
cat /home/ferdy/prova.txt /home/ferdy/aggiunte.txt > /home/ferdy/file_finale.txt
</pre>
Per visualizzare le prime dieci o le ultime dieci linee di un file:
<pre>
head /home/ferdy/prova.txt
tail /home/ferdy/prova.txt
</pre>
Un comando preziosissimo per gli amministratori di sistema è il seguente, che permette di vedere in modo interattivo la variazione di un file di log:
<pre>
tail -f /var/log/syslog | ccze
</pre>
Nell'ultimo comando sono stati usati:
* <code>'''-f</code>''' che permette a <code>tail</code> di seguire (follow) il file e i suoi cambiamenti
* <code>'''| ccze'''</code> che dirige l'output di tail verso il programma <code>ccze</code>, che colorerà l'output del log rendendolo facilmente leggibile
In quest'ultimo esempio, per rilasciare il terminale e riottenerne il pieno utilizzo bisogna stoppare <code>tail</code> con la combinazione di tasti <code>CTRL</code>+<code>C</code>.
Un altro uso interessante di cat è creare file di testo sfruttando lo stdin della shell.
Lanciamo questo comando:
<pre>
cat - > file.txt
</pre>
e possiamo scrivere il nostro testo sfruttando lo standard input come editor, si può correggere solo se non si è andati a capo e si termina con ''Ctrl-d''.<br>


{{Autori
{{Autori
3 155

contributi