[Risolto] opzione -C comando tar per creare archivi dubbio

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
gto_linux
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 333
Iscrizione: domenica 20 dicembre 2009, 12:24

[Risolto] opzione -C comando tar per creare archivi dubbio

Messaggio da gto_linux »

salve a tutti devo creare uno script che archivi il contenuto di una cartella, questa cartella non si trova nella directory in cui sono posizionato per mezzo del terminale quando avvio lo script, il mio problema è che usando il comando tar -cf /path_destinazione/archivio.tar /path_sorgente/* nell'archivio inserisce non solo i file contenuti nella cartella specificata con il /path_sorgente/ ma anche tutte le cartelle "superiori" ovvero apro l'archivo e invece di vedere i file c'è la cartella home
poi aprendola trovo le varie sottocartelle fino ad arrivare a quella che contiene i file archiviati, invece vorrei archiviare solo i file senza tutte queste "cartelle matriosca" credo che si possa usare l'opzione -C ma non ho capito come, potete aiutarmi?
grazie mille
Ultima modifica di gto_linux il giovedì 25 giugno 2015, 18:30, modificato 3 volte in totale.
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da SuperStep »

da man tar

Codice: Seleziona tutto

-C, --directory DIR
           change to directory DIR
puoi specificare la directory di partenza

Codice: Seleziona tutto

tar [...] --directory|-C /path/to/root/directory
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
gto_linux
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 333
Iscrizione: domenica 20 dicembre 2009, 12:24

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da gto_linux »

grazie per la risposta ma leggendo il manuale non capivo dove mettere l'opzione -C, comunque ho provato con questo comando e mi da errore

Codice: Seleziona tutto

 tar -cf -C /home/mia/Scrivania/cartella/* /home/mia/Scrivania/cartella2/archivio.tar 
tar: Rimozione di "/" iniziale dai nomi dei membri
tar: /home/mia/Scrivania/cartella2/archivio.tar: funzione "stat" non riuscita: File o directory non esistente
tar: Uscita con stato di fallimento in base agli errori precedenti
invece usando

Codice: Seleziona tutto

tar -cf /home/mia/Scrivania/cartella2/archivio.tar -C /home/mia/Scrivania/cartella/*
tar: Rifiuto totale di creare un archivio vuoto
Provare "tar --help" o "tar --usage" per ulteriori informazioni.
Ultima modifica di gto_linux il giovedì 25 giugno 2015, 16:18, modificato 1 volta in totale.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da crap0101 »

l'opzione di -C è solo il percorso in cui vuoi spostarti prima di eseguire le operazioni, per cui devi indicare un solo path, non /percorso/* .
Invece il primo non va perchè -f si aspetta un argomento, cioè il nome del file che vuoi creare, non -C.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da SuperStep »

con -C ti trovi nel path. Quindi è come se cercasse "/home/mia/Scrivania/cartella//home/mia/Scrivania/cartella2/archivio.tar "quello che devi fare è una cosa del genere:

Codice: Seleziona tutto

tar -zcvf  archivio.tar  /home/mia/Scrivania/cartella
archivio.tar viene creato dove ti trovi, altrimenti metti il path assoluto oppure usa mv dopo per spostarlo.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
gto_linux
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 333
Iscrizione: domenica 20 dicembre 2009, 12:24

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da gto_linux »

ragazzi scusate ma continuo a non capire, provo a fare un riassunto
il comando che ho usato fin ora è

Codice: Seleziona tutto

tar -cf /path_destinazione/archivio.tar /path_sorgente/* 

problema: crea l'archivio in "formato matriosca"

l'ultimo che suggerisce SuperStep crea sempre un archivio in "formato matriosca" anche perchè è concettualmente uguale a quello usato da me

Codice: Seleziona tutto

tar -zcvf  archivio.tar  /home/mia/Scrivania/cartella 
opzione -C da quello che ho capito si può specificare un solo path quello del sorgente, ovvero la cartella in cui stanno i file che vorrei archiviare allora dopo quei due tentativi errati ho provato

Codice: Seleziona tutto

tar -cf archivio.tar -C  /home/mia/Scrivania/cartella 
 tar: Rifiuto totale di creare un archivio vuoto
Provare "tar --help" o "tar --usage" per ulteriori informazioni.
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da SuperStep »

scusami ma cosa intenti per formato matriosca? spiega bene quello che vuoi fare e fornisci degli esempi, perchè non ho capito cosa vuoi realizzare.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
gto_linux
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 333
Iscrizione: domenica 20 dicembre 2009, 12:24

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da gto_linux »

saga [url=http://forum.ubuntu-it.org/viewtopic.php?p=4773530#p4773530][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:nell'archivio inserisce non solo i file contenuti nella cartella specificata con il /path_sorgente/ ma anche tutte le cartelle "superiori" ovvero apro l'archivo e invece di vedere i file c'è la cartella home
poi aprendola trovo le varie sottocartelle fino ad arrivare a quella che contiene i file archiviati, invece vorrei archiviare solo i file senza tutte queste "cartelle matriosca"
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da SuperStep »

questo perche' devi specificare il path della cartella che vuoi rendere un archivio.

ad esempio se voglio archiviare la directory /home/mia/Scrivania/dati, allora la cartella da comprimere sara' al path "/home/mia/Scrivania/dati" e la directory dati verra' compressa insieme a tutti i file contenuti al suo interno ricorsivamente. se tu per ipotesi specificassi di comprimere /, allora comprimeresti tutto il disco (tutti i file contenuti sul disco).
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
gto_linux
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 333
Iscrizione: domenica 20 dicembre 2009, 12:24

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da gto_linux »

ok però mi sembra che sia quello che ho fatto quando ho usato la prima volta

Codice: Seleziona tutto

tar -cf /home/mia/Scrivania/cartella2/archivio.tar  /home/mia/Scrivania/cartella/*
tar: Rimozione di "/" iniziale dai nomi dei membri
togliendo il /* finale dal path della cartella sorgente il risultato purtroppo è lo stesso, quando vado ad aprire l'archivio non trovo subito i file ma la cartella home
aprendola trovo la carella mia poi la cartella scrivania e infine la cartella che contiene i file aprendo quest'ultima arrivo finalmente ai file
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da crap0101 »

saga ha scritto:ok però mi sembra che sia quello che ho fatto quando ho usato la prima volta

Codice: Seleziona tutto

tar -cf /home/mia/Scrivania/cartella2/archivio.tar  /home/mia/Scrivania/cartella/*
tar: Rimozione di "/" iniziale dai nomi dei membri
togliendo il /* finale dal path della cartella sorgente il risultato purtroppo è lo stesso, quando vado ad aprire l'archivio non trovo subito i file ma la cartella home
aprendola trovo la carella mia poi la cartella scrivania e infine la cartella che contiene i file aprendo quest'ultima arrivo finalmente ai file
il /* non c'entra col problema delle cartelle genitore e tra l'altro non serve, siccome tar di default è ricorsivo.
Devi usare l'opzione -C PATH indicando il PATH in cui vuoi spostarti e poi indicare il percorso relativo di ciò che vuoi archiviare.

Codice: Seleziona tutto

crap0101@orange:~$ mkdir -p /tmp/foo/bar/baz
crap0101@orange:~$ tar cf arch.tar /tmp/foo/  # "sbagliato"
tar: Rimozione di "/" iniziale dai nomi dei membri
crap0101@orange:~$ tar tf arch.tar 
tmp/foo/
tmp/foo/bar/
tmp/foo/bar/baz/
crap0101@orange:~$ tar -C /tmp/ -cf arch.tar foo/  # senza le dir superiori
crap0101@orange:~$ tar tf arch.tar 
foo/
foo/bar/
foo/bar/baz/
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
gto_linux
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 333
Iscrizione: domenica 20 dicembre 2009, 12:24

Re: opzione -C comando tar per creare archivi dubbio

Messaggio da gto_linux »

ok adesso ho capito, sbagliavo a usare l'opzione -C benissimo grazie a entrambi per l'aiuto :)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti