如何使用密碼遞歸壓縮子目錄的文件

如何使用密碼遞歸壓縮子目錄的文件

我需要使用密碼遞歸壓縮子目錄的文件,然後刪除 bash 檔案中未壓縮的檔案。

有 zip 檔案和其他檔案。我不想再次壓縮 zip 檔案。我只想壓縮未壓縮的檔案並將檔案名稱保留為壓縮檔案名稱。

例如,如果檔案名稱是,aaa10.dat則必須使用 zip 檔案名稱aaa10.zip並使用密碼進行壓縮。

壓縮後,我想刪除未壓縮的檔案。

[目錄結構]

dir1/aaa1.dat ... aaa10.dat
dir1/dir2/dir2_subdir1/aaa.zip, aaa.dat
dir1/dir3/dir3_subdir1/aaa1.dat ... aaa10.dat
dir1/dir3/dir3_subdir2/aaa1.dat ... aaa20.dat, aaa1.zip ... aaa10.zip
dir1/dir3/dir3_subdir2/dir3_subdir2_subdir1/aaa1.dat ... aaa20.dat, aaa1.zip ... aaa10.zip

答案1

您可以使用相當複雜的find命令來完成此操作,該命令會找到所有“.dat”文件,然後將它們壓縮。但是將 zip 部分放入單獨的腳本中更容易顯示:

find . -name '*.dat' -exec my-script {} \;

my-script(必須在您的 中PATH):

#!/bin/sh
zip -P my-password -m $(dirname $1)/$(basename $1 .dat).zip $1

my-password當然是你選擇的任何東西。

相關內容