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

前端之家收集整理的这篇文章主要介绍了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”部分,创建所需目录并最终提取它们.

原文链接:https://www.f2er.com/bash/385459.html

猜你在找的Bash相关文章