[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Help with Tar command



Sven Joachim wrote:
> Alan Chandler wrote:
> > I presume my cron job is being run with the current directory as
> > filesystem root, because this command line
> > tar -czf /bak/archive/snap/mb.com/melinda.tar.gz --exclude-tag=NOBAK.TAG -C /bak/mb.com *
> > complains that it can't find many of the root level directories.

I prefer not to use a '*' file glob wildcard there.  That will skip
dot files for example.  Use '.' instead to mean the current directory
and to get everything in the directory.

> > I suspect the * here is being expanded by the shell before it calls
> > tar, which is what causes the problem.
> 
> Indeed, that is the problem.

Agreed.

> > How can I tell tar to copy all the files in the /bak/mb.com
> > directory into the archive (exluding the directories that have a
> > file called NOBAK.TAG in them) in such a way that the inside of
> > the tar archive does NOT have the directory mb.com as its top
> > level, but all the files and directories under mb.com.  (I am
> > relaxed about including the files/directories starting with a dot,
> > although on balance I would prefer that they be included).
> 
> Use "tar --strip-components=1 … -C /bak mb.com" (untested).

I may have read too quickly and you may have been illustrating the
general concept but if already changing directories then why strip any
components?

  tar -czf /.../tarfile.tar.gz --exclude-tag=NOBAK.TAG -C /bak/mb.com .

Alternatively you can change directory to there first.

  cd /bak/mb.com && tar -czf /.../tarfile.tar.gz --exclude-tag=NOBAK.TAG .

In case due to font reasons it isn't easily noticeable note the use of
'.' for a directory name at the end of the command line.

Bob

Attachment: signature.asc
Description: Digital signature


Reply to: