我正在尝试编写一个bash脚本,我可以在其中为其提供一个主目录,其中包含多个文件夹并压缩文件夹的内容(不包括其封闭文件夹),并将zip重命名为其封闭文件夹。
这是一个视觉示例,应该解释我想要实现的目标。
|ROOT FOLDER
> Folder_1
- file
- folder
- file
> Folder_2
- file
- folder
- file
> Folder_3
- file
- folder
- file
我希望能够定位ROOT FOLDER
并返回压缩文件。以下是导出的拉链及其内容的示例。
|ROOT FOLDER
> zips
> Folder_1.zip
- file
- folder
- file
> Folder_2.zip
- file
- folder
- file
> Folder_3.zip
- file
- folder
- file
我希望这是有道理的。我做了很多这个并且认为这绝对可以自动化,尽管我的bash脚本知识是有限的。
答案 0 :(得分:1)
这会在根文件夹附近的文件夹中创建一个zip文件。您可以随意使用它,直到它符合您的要求
#!/bin/bash
function usage(){
echo "Usage: $(basename $0) <root folder path>"
exit 1
}
[ $# -eq 0 ] && usage
root=$1
pushd ${root}
folders=$(find . -type d -maxdepth 1 -mindepth 1)
[ -d ../zips ] || mkdir ../zips
for folder in $folders
do
pushd $folder
zip -r ../../zips/$(basename ${folder}).zip .
popd
done
popd