8

I try to pack a .csv file with tar.gz, while being in the root directory.

The file myfile.csv is located at /mnt/sdb1/ So the full filename is /mnt/sdb1/myfile.csv

I try to save the tar.gz under /mnt/sdb1/old_files

I tried it like this:

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

But when i extract the file, then a folder with name "mnt" will be extracted which cointains another folder called "sdb1", which contains the file.

Is it possible to compress the file only, instead of copying all the directories?

3 Answers 3

12

use the --directory option from man tar :

-C,- -directory DIR

change to directory DIR

i.e.:

tar -C /mnt/sdb1/ -czf /mnt/sdb1/old_files/new.tar.gz myfile.csv 
1
  • Thank you Fiximan! This solved the problem. I will upvote as soon i have 15 reputation. Commented Jul 20, 2015 at 13:35
3

You have first to cd /mnt/sdb1, then launch the tar command.

FYI, you don't need to use tarhere as its purpose is to agglomerate several files in a tarball. Since you have only one file here, just use gzip.

5
  • I know, but i have to do it from the root directory, because i execute the command from a script. Commented Jul 20, 2015 at 13:31
  • 1
    Man, so just add the cd command before tar, then you can go back, or use cd /mnt/sdb1 && tar -czf new.tar.gz myfile.csv && cd / if you prefer one line cmd. Commented Jul 20, 2015 at 13:37
  • @McSinyx The problem is that the directory is not saved, even when i execute cd /mnt/sdb1/ then i will be in the root directory again at the next execution of a command. But your second solution looks logical to me, i try it. Commented Jul 20, 2015 at 13:41
  • @McSinyx NICE! It works :) Thank you, this will be VERY usefull! Commented Jul 20, 2015 at 13:44
  • @EdwardBlack You can run a script from anywhere, just add the relevant absolute paths. In general, using relative paths is a bad idea as it can break things easily. Commented Jul 20, 2015 at 13:46
1

Use the -C option to tar:

 -C Directory Causes the tar command to perform a chdir subroutine to the directory specified by the Directory variable. 

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.