使目录内容的zip和名称zip与目录相同 - 递归

时间:2015-02-18 20:41:06

标签: directory zip

我有超过500个子目录来自一个根目录,每个目录包含> 6000个文件。目录名为2015021820150217等,一年中的每一天都有一个。

我想开发一个脚本来压缩目录中的所有文件,即20150217并命名目录20150217.zip。然后我想删除原始文件。

因此,~/public_html/ispy/dlink/中的所有sud目录都将单独压缩。

我感谢任何指导。

1 个答案:

答案 0 :(得分:0)

将以下脚本复制并粘贴到任何unix编辑器(vim,geany,mousepad)中,并将其保存在“date”子文件夹的目录中。根据需要命名,没有扩展名,例如zipscript。从终端:使用您的脚本转到目录,允许执行它:chmod +x zipscript并触发它:sudo ./zipscript

#!/bin/bash

for D in *
do
    if [ -d "${D}" ]; then
        zip -r -j "${D}".zip "${D}"
        rm -R "${D}"
    fi
done

脚本运行如下:对于当前目录中的每个文件(目录也是unix下的文件),检查它是否是目录,如果为true,则使用相同的名称创建zip,然后删除包含其中所有文件的子目录。