Comprimere il file con tar.gz dalla directory principale


8

Provo a comprimere un file .csv con tar.gz, pur trovandomi nella directory principale.

Il file myfile.csvsi trova in /mnt/sdb1/ Quindi il nome file completo è/mnt/sdb1/myfile.csv

Provo a salvare il tar.gz sotto /mnt/sdb1/old_files

L'ho provato in questo modo:

tar -czf /mnt/sdb1/old_files/new.tar.gz mnt/sdb1/myfile.csv

Ma quando estraggo il file, verrà estratta una cartella con nome "mnt" che contiene un'altra cartella chiamata "sdb1", che contiene il file.

È possibile comprimere solo il file, invece di copiare tutte le directory?

Risposte:


12

usa l' --directoryopzione da man tar:

-C, - -directory DIR

passare alla directory DIR

vale a dire:

tar -C /mnt/sdb1/ -czf /mnt/sdb1/old_files/new.tar.gz myfile.csv

Grazie Fiximan! Questo ha risolto il problema. Farò voto non appena avrò 15 reputazione.
Black

3

Devi prima cd /mnt/sdb1, quindi avviare il tarcomando.

Cordiali saluti, non è necessario utilizzare tarqui in quanto il suo scopo è quello di agglomerare diversi file in un tarball. Dato che hai un solo file qui, basta usare gzip.


Lo so, ma devo farlo dalla directory principale, perché eseguo il comando da uno script.
Black

1
Amico, quindi basta aggiungere il cdcomando prima tar, quindi puoi tornare indietro o utilizzare cd /mnt/sdb1 && tar -czf new.tar.gz myfile.csv && cd /se preferisci una riga cmd.
McSinyx,

@McSinyx Il problema è che la directory non viene salvata, anche quando eseguo cd /mnt/sdb1/, sarò di nuovo nella directory root alla successiva esecuzione di un comando. Ma la tua seconda soluzione mi sembra logica, la provo.
Black

@McSinyx NICE! Funziona :) Grazie, sarà MOLTO utile!
Black

@EdwardBlack Puoi eseguire uno script da qualsiasi luogo, basta aggiungere i percorsi assoluti rilevanti. In generale, l'uso di percorsi relativi è una cattiva idea in quanto può rompere facilmente le cose.
dr_

1

Usa l' -Copzione per tar:

   -C Directory
        Causes the tar command to perform a chdir subroutine to the
        directory specified by the Directory variable.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.