I have 100 files: cvd1.txt
, cvd2.txt
... cvd100.txt
How to gzip
100 files into one .gz
file, so that after I gunzip
it, I should have cvd1.txt
, cvd2.txt
... cvd100.txt
separately?
if you have zip,
zip myzip.zip cvd*.txt
Don't need to tar
them first.
zgrep
, zcmp
, zdiff
and all sorts of tools that can work on pipes by your choice of a non-streamable format called zip. Power users use pipes.
Commented
Nov 14, 2018 at 3:39
zip
which creates ZIP files, not .gz
files.
You want to tar
your files together and gzip
the resulting tar file.
tar cvzf cvd.tar.gz cvd*.txt
To untar the gzip'd tar file you would do:
tar xvzf cvd.tar.gz -C /path/to/parent/dir
This would extract your files under the /path/to/parent/dir
directory
You'll want to use tar, like so:
tar -czvf file.tar.gz cvd*.txt
tar puts the files together, while gzip then performs the compression.
Quoth the gzip manpage:
If you wish to create a single archive file with multiple members so that members can later be extracted independently, use an archiver such as tar or zip. GNU tar supports the -z option to invoke gzip transparently. gzip is designed as a complement to tar, not as a replacement
gzip by itself does not know anything about file structure. To do what you want, you need to first put the files into some kind of container file (e.g. a tar structure, or similar) and then gzip that. tar has z and j (for bzip2) switches on GNU platforms to do this.
You can do it using:
zip my_final_filename.zip my_first_file my_second_file ... my_last_file
unzip my_final_filename.gz
or
tar cvzf my_final_filename.tar.gz my_first_file my_second_file ... my_last_file
tar -czvf my_final_filename.tar.gz
Unfortunately gzip
is not capable of doing that. In case of more information please look at comments.
gzip/gunzip
commands didn't work, it will return the error gzip: my_final_filename.gz: No such file or directory
To compress multiple files with different patterns, we could this :
tar -czvf deploy.tar.gz **/Alice*.yml **/Bob*.json
this will add all .yml files that starts with Alice from any sub-directory and add all .json files that starts with Bob from any sub-directory.