加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash gunzip |解压在分隔文件夹中的多个文件

发布时间:2020-12-15 18:31:11 所属栏目:安全 来源:网络整理
导读:我有一个具有相同内部文件夹结构的.tar.gz文件列表,我想批量gunzip |在分隔的文件夹中解压缩它们中的单个文件. logs_2013-08-01.tar.gz logs_2013-08-02.tar.gz logs_2013-08-03.tar.gz logs_2013-08-04.tar.gz logs_2013-08-05.tar.gz 我知道解压单个文件的
我有一个具有相同内部文件夹结构的.tar.gz文件列表,我想批量gunzip |在分隔的文件夹中解压缩它们中的单个文件.

logs_2013-08-01.tar.gz
logs_2013-08-02.tar.gz
logs_2013-08-03.tar.gz
logs_2013-08-04.tar.gz
logs_2013-08-05.tar.gz

我知道解压单个文件的命令是

tar -xvf {tarball.tar} {path/to/file}

并添加-C以指定输出文件夹,单个存档的命令如下所示:

tar -xvf logs_2013-08-01.tar.gz -C 2013-08-01/ /var/logs/audit

但我怎么能循环来解决一切呢?

你可以尝试这个(在Linux / bash上测试):
for pkg in logs_*.tar.gz; do
   where="${pkg#logs_}"
   where="${where%.tar.gz}/"

   [ -d "$where" ] || mkdir "$where"

   tar zxfv $pkg -C "$where" /var/logs/audit
done

简单地说,你遍历当前dircetory中的所有tgz档案,然后从名称中取出“date”部分,创建所需目录并最终提取它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读