32
2
How can I use the 7-Zip CLI (7za.exe) on Windows to create .tgz archives, as I use tar zcvf archive.tgz source_files
on Linux?
32
2
How can I use the 7-Zip CLI (7za.exe) on Windows to create .tgz archives, as I use tar zcvf archive.tgz source_files
on Linux?
3
Now Windows supports a native tar command:
tar -cvzf output.tar.gz input_dir
https://techcommunity.microsoft.com/t5/containers/tar-and-curl-come-to-windows/ba-p/382409
Found it here.
35
If you'd like to do it in a one-liner:
7za.exe a -ttar -so -an source_files | 7za.exe a -si archive.tgz
The -an
switch tells 7-Zip not to parse the archive_name command line parameter that's normally required.
6
If you're just compressing 1 file into the tarball then 7za a archive.tgz source_file
will work.
If you want to add lots of files to the tar then you need to do it in two steps:
Create the tar 7za a archive.tar source_files
Then compress it 7za a archive.tgz archive.tar
And, optionally, delete the 'temporary' tar del archive.tar
I wish the one-liner worked for file-collections instead of just individual files! Thx for the heads up. – kayleeFrye_onDeck – 2020-01-16T22:40:05.293
note: if you have no 7za.exe in your 7zip-folder you can also use 7zg.exe if available – anion – 2018-03-01T16:16:26.380
1In my case, neither 7za.exe nor 7zg.exe was there, but 7z.exe was. – JoL – 2018-11-01T16:16:25.393
tar is required becausa a tgz or tar.gz is a tar file which has been gzipped. 7zip just don't have the ability to do all of it in just one step, so you have to pipe the output of the command which tars your files into the one that gzips your tar ^^. This is why when yopu open a tar.gz in 7zip you see a tar file inside. – DGoiko – 2019-10-15T16:09:04.513
@DGoiko I know that part -- I just didn't understand why the
archive.tar
filename is required when the data is being streamed to stdout. – afrazier – 2019-10-17T14:43:29.830Oh, I see. I thought that gz needed the internal filename in order to be properly displayed, but maybe I was wrong. – DGoiko – 2019-10-17T20:17:34.227