find + tar + gzip + uunecode/email --> in one command?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting find + tar + gzip + uunecode/email --> in one command?
# 1  
Old 03-02-2012
find + tar + gzip + uunecode/email --> in one command?

How to search for all files with matching strings -->
find + tar + gzip + uunecode/email them in one command?

Quote:
This one only gzips first matched file.

find . -type f -exec egrep -il 'aaaa|bbbbb|ccccc' {} \; | xargs -l tar -cvf - | gzip >files.tar.gz
Quote:
This one works, but I think this is not the right way of passing list of files to tar.

tar -cvf `find . -type f -exec egrep -il 'aaaa|bbbbb|ccccc' {} \;` -cvf - | gzip >files.tar.gz
I am sure there is a right way to pass list of files to tar, then compress tar file. Then send that as attachment using uuencode in one command.. Can we do that!?
# 2  
Old 03-02-2012
It only gives the first file because you're telling xargs to only give it the first file. from man xargs:

Code:
       -l[max-lines]
              Synonym for the -L option.  Unlike -L, the max-lines argument is
              optional.   If  max-lines  is not specified, it defaults to one.
              The -l option is deprecated since the POSIX  standard  specifies
              -L instead.

Remove the -l and it will feed in more.

Be warned, however, that if there are enough files, xargs will be forced to call tar more than once, because it's unable to fit them all into one commandline. when this happens, tar will happily replace the archive it already created with a new one. To avoid this, you must tell tar to append (r, rather than c, option).

This doesn't work for compressed tarballs however -- you can't append to those. You must compress it later.

So:

Code:
find . -type f -exec egrep -il 'aaaa|bbbbb|ccccc' {} \; | xargs tar -rvf /tmp/$$.tar

( echo "To:  username@host"
  echo "From:  me@host"
  echo "Subject:  auto-tarball"
  echo
  gzip /tmp/$$.tar | uuencode filename.tar.gz ) | sendmail username@host 

rm -f /tmp/$$.tar

# 3  
Old 03-02-2012
Thanks Corona.
# 4  
Old 03-02-2012
I just noticed a minor but important error in my code:

Code:
find . -type f -exec egrep -il 'aaaa|bbbbb|ccccc' {} \; | xargs tar -rvf /tmp/$$.tar

( echo "To:  username@host"
  echo "From:  me@host"
  echo "Subject:  auto-tarball"
  echo
  gzip < /tmp/$$.tar | uuencode filename.tar.gz ) | sendmail username@host 

rm -f /tmp/$$.tar

Without that < , it will just create /tmp/$$.tar.gz and mail a blank, empty attachment.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. HP-UX

Hpux find tar gzip

Hello, I will like to execute a find, tar & gzip in one command. find * -type f -mtime -$nb_days -print | xargs tar -cvf $MAITUT/BCK_DATA.tar gzip $MAITUT/BCK_DATA.tar.gz The fact that the TAR is very big, at the end I need to generate only a compress file. Please note... (22 Replies)
Discussion started by: royinfo.alain
22 Replies

2. UNIX for Beginners Questions & Answers

Need help ASAP - FIND - TAR - GZIP

Hi, I need to combined in 1 line the execution below : find * -type f -mtime -$nb_days -print | xargs tar -cvf $MAITUT/BCK_DATA.tar gzip $MAITUT/BCK_DATA.tar.gz The fact that the TAR is very big, at the end I need to generate only the GZ file. The option z on the tar... (2 Replies)
Discussion started by: royinfo.alain
2 Replies

3. UNIX for Dummies Questions & Answers

Failed to use find-tar-gzip together

Hello I am trying to select multiple files older than 14 days and create a single compressed file out of it. (AIX Release 3 Version 5) I am trying to achieve it by following tar -cvf db01_log.tar `find . -name "db01*.log" -mtime +14" -print`| gzip > db01_log.tar however it just... (7 Replies)
Discussion started by: Chetanz
7 Replies

4. UNIX for Dummies Questions & Answers

tar -cvf test.tar `find . -mtime -1 -type f` only tar 1 file

Hi all, 4 files are returned when i issue 'find . -mtime -1 -type f -ls'. ./ora_475244.aud ./ora_671958.aud ./ora_934052.aud ./ora_934050.aud However, when I issued the below command: tar -cvf test.tar `find . -mtime -1 -type f`, the tar file only contains the 1st file -... (2 Replies)
Discussion started by: ahSher
2 Replies

5. Shell Programming and Scripting

tar + gzip + split together

Hi All I need guidance on this requirement . We have a directory structure which has data of approx 100 GB We need to tar the structure then zip it and create different files of not more than 10 GB A separate tar file then a .gz should not be created , on the fly a script is needed... (7 Replies)
Discussion started by: aamir1234
7 Replies

6. UNIX for Advanced & Expert Users

Amoung tar and gzip whiich unix command is more practical with respect to space manag

Hi All Can any body help me out. Amoung tar and gzip whiich unix command is more practical with respect to space management and file restoration. Eg if I use tar or gzip which will be more helpful to reduce the space and during the file restoration. Please help me out. regards... (3 Replies)
Discussion started by: manas6
3 Replies

7. UNIX for Dummies Questions & Answers

tar and gzip

Hi, I would like to have a combined gzip and tar that will compress and create multiple output tar.gz files. I want to have multiple files output because i cannot create an archive because there is no more space on my harddisk. I cannot transfer it locally because of slow connection. I want to... (3 Replies)
Discussion started by: tungaw2004
3 Replies

8. UNIX for Advanced & Expert Users

tar/gzip/gz...which one to use?

P0251WLADC.svm_wl1 > /svm_wl1/billing/data/server/archive/ALLEVT $ du -k FEB2006 22050224 FEB2006 As you can see,i have a folder called "FEB2006" which is around 22 GB. i guess zip or compress wont work...( i don know how do we compress a folder) i wished to use ""tar" ( i suppose... (5 Replies)
Discussion started by: abhijeetkul
5 Replies

9. UNIX for Dummies Questions & Answers

TAR and GZIP help

Hi, There are 700 .pdf files in a certain directory on the server and I need to TAR them first and then compress them using GZIP to free up the space. The combined size of the .pdf files is 3gb. However, there is only 1gb of free space on the server. So as you can see when I try to TAR these... (3 Replies)
Discussion started by: VandeMatram
3 Replies

10. UNIX for Dummies Questions & Answers

Combine tar and gzip together?

Hello I just wandering, instead to doing "tar cvf foo.tar * " and then gzip foo.tar , can't it be combined to one command ? (1 Reply)
Discussion started by: umen
1 Replies
Login or Register to Ask a Question