I'm trying to make a script that will unzip a password protected file, the password being the name of the file that I will get when unzipping
Eg.
file1.zip contains file2.zip and it's password is file2.
file2.zip contains file3.zip and it's password is file3
How do I unzip file1.zip
, and read the name of file2.zip
so it can be entered in the script?
Here's a screenshot of what I meant, I just need bash to read that output in order to know the new password
(In this case the password is 13811).
Here's what I've done so far
#!/bin/bash
echo First zip name:
read firstfile
pw=$(zipinfo -1 $firstfile | cut -d. -f1)
nextfile=$(zipinfo -1 $firstfile)
unzip -P $pw $firstfile
rm $firstfile
nextfile=$firstfile
Now how can I make it do the loop?
Best Answer
If you don't have and cannot install
zipinfo
for any reason, you can imitate it by usingunzip
with-Z
option. To list the contents of the zip useunzip -Z1
:Put it to a loop:
or a recursive function: