2016-11-14 41 views
3

我有一個腳本,使用命令執行在某些特定文件夾ZIP和\或tar.gz的檔案質量提取的提取:bash腳本跳過密碼保護的存檔

unzip -o "$zip_path" -d "$destination_folder" 

不幸的是,當歸檔密碼受保護的腳本停止並等待密碼輸入。

有沒有辦法省略密碼進入階段不中斷運行的腳本?

P.S.沒有必要提取受密碼保護的文件。只能省略這個檔案。 喜歡的東西:

if "$zip_path" [ determine that archive is password-protected ]; then 
echo "Password-protected" 
elif "continue script execution" 
fi 
+0

您是否嘗試過'tar'的'--ignore-failed-read'選項? – Aserre

+0

似乎所有受密碼保護的文件都是* .zip。對不起,誤導:( –

回答

2

對於zip文件,您可以指定與-P國旗的假人(錯誤的)密碼。 對於未加密的文件,將被忽略, 對於加密文件,您將收到警告並且文件將被跳過。例如:

unzip -P x -o "$zip_path" -d "$destination_folder" 

對於tar文件,加密是不是一個標準功能,所以我不知道你,你是什麼意思。你可以嘗試從標準輸入重定向/dev/null的腳本,使之無法讀取和跳過下一個文件:

tar -xvzf "$tgz_path" --directory "$destination_folder" < /dev/null 

如果這不起作用,那麼你可以嘗試expect

+1

@VasiliyVegas我剛剛測試過,並看到了問題。修正了在我的解壓縮答案。至於焦油,我不知道你是什麼樣的加密。 – janos

+0

是的,我測試了新的腳本並查看所有受密碼保護的文件都是* .zip。感謝您的回覆,我將相應地編輯問題。 –