【问题标题】:Make zip of directory contents and name zip same as directory - recursively使目录内容的 zip 和名称 zip 与目录相同 - 递归
【发布时间】:2015-02-18 20:41:06
【问题描述】:

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

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

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

感谢任何指导。

【问题讨论】:

  • 好吧,实现一个循环,遍历该基本文件夹的目录列表包含的所有目录类型的条目。在每次迭代中调用 zip 创建者。这里有什么问题?

标签: directory zip


【解决方案1】:

将以下脚本复制并粘贴到任何 unix 编辑器(vim、geany、鼠标垫)中,并将其保存在包含“日期”子文件夹的目录中。随意命名,不带扩展名,例如邮编。从终端:使用您的脚本进入目录,允许执行它: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下的文件)检查它是否是一个目录,如果是,则使用相同的名称制作zip,然后删除包含所有文件的子目录。

【讨论】:

  • 先生。老鼠 - 这很有帮助,我什至认为我理解代码。但是,我不明白 chmod+x 和 sudo 部分?脚本是否需要有任何特殊的扩展名。我想知道我是否可以将其移至电子邮件。我可以通过电子邮件给你写信吗?
  • @user2079583 我已经编辑了我的答案,以解释更多你必须做什么。您必须阅读有关 bash 命令和从控制台使用 linux,这是基本知识!如果您认为该答案有帮助,请单击勾选接受它。
  • 感谢您的更新。它像冠军一样工作。我昨晚想出了如何运行它。哇。这么优雅的代码做了一件比较大的事情。我刚开始学习这些东西。我们有机会通过电子邮件聊天吗?您可以通过 buy@paragon-c.com 与我联系
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多