Tuesday, April 9, 2019

command line - Creating an archive from a directory without the directory name being added to the archive


I have the following folder structure:




  • root

    • folder1

    • folder2

    • folder3

    • 7za.exe




I want to run the 7-zip command line tool to compress all the files in folder1 to a zip file called folder1.zip.


Running the following


7za.exe a -tzip folder1.zip folder1\\*.*

produces a zip file as expected. However, when I open the zip file, it has a folder in it called folder1, and inside that I have all the files that were inside that folder. I don't want the folder name added to the zip folder, i.e. I would like to add all the files in a "Flat" file format.


I also don't want to recursively run the command line tool for each individual file/folder.


Is there a switch that provides this functionality?


Answer



From the 7-Zip Help file:



Adds files to archive.


Examples


7z a archive1.zip subdir\


adds all files and subfolders from folder subdir to archive archive1.zip. The filenames in archive will contain subdir\ prefix.


7z a archive2.zip .\subdir\*


adds all files and subfolders from folder subdir to archive archive2.zip. The filenames in archive will not contain subdir\ prefix.


cd /D c:\dir1\


7z a c:\archive3.zip dir2\dir3\


The filenames in archive c:\archive3.zip will contain dir2\dir3\ prefix, but they will not contain c:\dir1\ prefix.



So the command you'd want would be: 7za.exe a folder1.zip .\folder1\*


Also, pay attention to 7-Zip's handling of wildcards. It doesn't treat *.* as "all files" -- it means "all files with a period in the filename." Extension-less files will be missed. If you really want all files, just use * instead.


Finally, the -tzip parameter isn't needed if the archive filename ends in .zip. 7-Zip is smart enough to figure out which format you want in those cases. It's only required when you want a custom extension (e.g. 7za.exe a -tzip foo.xpi for a Mozilla Add-on).


No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...