微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一个具有相同内部文件夹结构的.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”部分,创建所需目录并最终提取它们.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐