3

I have some directories (linux machine) full of highly compressible *.foo files.

Right now I just have a script that does gzip *.foo and it gzips each file into its own .gz file, and removes the original. 7z will compress these files to half the size that gzip will, so I'd like to switch to that.

How can I use 7z to start with a directory like this

file1.foo
file2.foo
file3.foo

and end up with

file1.foo.7z
file2.foo.7z
file3.foo.7z

Or similar. I don't want all of the files in one .7z archive.

3
for i in *.foo; do 7za a $i.7z $i; if [ $? -eq 0 ]; then rm $i; fi; done
1
  • 1
    Simplified: for i in *.foo; do 7za a $i.7z $i && rm $i; done Feb 1 '11 at 21:10
0

Give this a try:

find -type f -maxdepth 1 -name "*.foo" -print0 | xargs -0 -I % 7z a %.7z %

but that will leave the original file after it's compressed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.