Pagina 1 di 1

estrarre file .tar.gz da terminale.

Inviato: giovedì 6 gennaio 2011, 1:25
da 44danni
ho un file .tar.gz sulla scrivania e vorrei estrarlo nella cartella /usr/share/gnome-screensaver

la mia domanda è: devo prima portare fisicamente il pacchetto nell cartella o posso, da terminale, dire di estrarlo direttamente lì?

Re: estrarre file .tar.gz da terminale.

Inviato: giovedì 6 gennaio 2011, 8:06
da tokijin
Ti conviene estrarlo sulla Scrivania, poi lo copi dove vuoi

Codice: Seleziona tutto

sudo cp $HOME/Scrivania/archivio_estratto /usr/share/gnome-screensaver

Re: estrarre file .tar.gz da terminale.

Inviato: giovedì 6 gennaio 2011, 12:18
da Elrond
44danni ha scritto: ho un file .tar.gz sulla scrivania e vorrei estrarlo nella cartella /usr/share/gnome-screensaver

la mia domanda è: devo prima portare fisicamente il pacchetto nell cartella o posso, da terminale, dire di estrarlo direttamente lì?
Per cambiare la directory in cui estrarre c'è l'opzione -C (leggendo il manuale l'avresti scoperto da te, se conosci anche solo un poco di inglese), quindi:

Codice: Seleziona tutto

tar xzvf archivio.tar.gz -C /usr/share/gnome/screen-saver
preceduto eventualmente da sudo

Re: estrarre file .tar.gz da terminale.

Inviato: venerdì 7 gennaio 2011, 0:32
da 44danni
si, lo ammetto, sono molto svogliata, ma io poi ne approfitto e continuo a chiedere:
- con "xzvf" si intendono i permessi che stiamo dando al file?

la prossima volta saprò cosa faccio, perchè e come!

Re: estrarre file .tar.gz da terminale.

Inviato: venerdì 7 gennaio 2011, 9:01
da tokijin
x -> extract files from an archive
z -> filter the archive through gzip
v -> verbosely list files processed
f -> use archive file or device ARCHIVE

Non sono i permessi dei file, sono funzioni e opzioni di tar; trovi tutto scrivendo in un terminale

Codice: Seleziona tutto

man tar
Vale per ogni comando:

Codice: Seleziona tutto

man comando_di_cui_vuoi_sapere_informazioni

Re: estrarre file .tar.gz da terminale.

Inviato: venerdì 7 gennaio 2011, 9:19
da Elrond
44danni ha scritto: si, lo ammetto, sono molto svogliata, ma io poi ne approfitto e continuo a chiedere:
- con "xzvf" si intendono i permessi che stiamo dando al file?

la prossima volta saprò cosa faccio, perchè e come!
No, no, no. xzvf sono le opzioni passate a tar. In genere nei comandi Unix le opzioni sono precedute da un trattino le si tratta di una opzione breve, un doppio trattino se si tratta di un'opzione estesa. tar accetta le opzioni anche senza trattino.
x sta per extract, dice a tar che bisogna estrarre i file dall'archivio su cui si opererà;
z indica l'algoritmo con cui l'archivio era stato compresso. z sta per gzip. Gli altri algoritmi di compressione saranno indicati da altre lettere: j per bzip2, J per xz, ecc...
v sta per verbose, cioè farà vedere sul terminale quali sono le operazioni compiute da tar, quali sono i file che vengono processati (nel caso di estrazione, come questo, fa vedere quale file viene estratto);
f serve per specificare il file su cui operare. Nel tuo caso, in cui vuoi estrarre un archivio, specifica qual è l'archivio compresso che si vuole scompattare. Subito dopo l'opzione f bisogna necessariamente mettere il file (separato da uno spazio rispetto a f) cui si vuole lavorare. Se sbagli l'ordine delle opzioni, per esempio

Codice: Seleziona tutto

tar xfvz archivio_compresso.tar.gz
al posto di

Codice: Seleziona tutto

tar xzvf archivio_compresso.tar.gz
il risultato potrebbe essere disastroso (in realtà sembra che tar capisca correttamente quale sia il file da processare se usi tar xfvz archivio_compresso.tar.gz, tuttavia abituati a mettere il nome del file dopo la f e non avrai sicuramente problemi).

Dicevo che in genere i comandi Unix accetta le opzioni in forma breve con un trattino, forma estesa con due. Per esempio, l'opzione x è equivalente alla forma breve -x o alla forma estesa --extract (o anche --get); z è equivalente alla forma breve -z e alle forme estese --gzip, --gunzip e --ungzip; v è equivalente a -v (forma breve) e --verbose (forma estesa); f equivale a -f (forma breve) e --file (forma estesa). Quindi, per esempio, il comando

Codice: Seleziona tutto

tar xzvf archivio_compresso.tar.gz
è equivalente alla forma estesa

Codice: Seleziona tutto

tar --extract --gunzip --verbose --file archivio_compresso.tar.gz
o anche alla forma breve

Codice: Seleziona tutto

tar -x -z -v -f archivio_compresso.tar.gz
Molti comandi Unix (e tar rientra fra questi) permettono di raggruppare le opzioni brevi inserendo un solo trattino all'inizio e poi scrivendo tutte le opzioni (brevi) insieme. Quindi -x -z -v -f può diventare -xzvf. In più, come già detto, tar accetta le opzioni (se sono messe subito dopo il comando tar stesso) senza il trattino, da cui deriva il comando che ti avevo indicato:

Codice: Seleziona tutto

tar xzvf archivio_compresso.tar.gz
Penserai che è impossibile ricordarsi a memoria tutte le opzioni dei vari comandi e probabilmente hai ragione (anche se c'è qualcuno che se ne ricorda davvero tante). Tuttavia per aiutare la memoria degli utenti esistono i manuali. Io stesso ho avuto bisogno di consultare il manuale di tar per scrivere qualche parte di questo post. Se hai intenzione di lavorare molto da terminale i manuali devono essere i tuoi migliori amici, molto spesso (anche se non sempre sempre sempre) troverai lì la risposta ai tuoi dubbi subito, senza dover scrivere un messaggio sul forum e aspettare che risponda qualcuno che conosca la risposta.