关于:提取* .gz文件并将原始文件移动到其他文件夹

时间:2016-02-15 04:08:33

标签: shell centos gunzip

我在shell脚本上几乎是新手,但不知道一些命令。 我正在尝试编写下面的shell脚本,请给出一些指示。     1.从特定目录中读取* .gz文件     2.将其解压缩到其他文件夹     3.将原始文件移动到另一个文件夹。 我可以做三个单独的shell脚本,但我希望它包括一个shell脚本。然后这个脚本将是cronjob并将每5分钟运行一次。     我试图像下面开始,但不知何故,我有点困惑如何获取文件列表。我可以在这里做另一个脚本,但想要包含在一个脚本中。“

#!/bin/bash

while IFS= read file; do
    gzip -c "$file" > "zipdir/$(basename "$file").gz"
done < filelist
-----------------------------------------

PS:文件每5分钟创建一次。

1 个答案:

答案 0 :(得分:1)

有几种方法可以实现您正在寻找的内容(我会考虑var lists:[ModelClassName]? = AdvertisementDataList.findByTypeInContext("user_id", entityDescription: "CoredataEntityName") as? [AdvertisementDataList] )。无论如何......这是一个非常简单的实现:

notify

如果你肯定知道&#34;来源&#34;目录将始终包含.gz文件,您可以避免购物。

另一种解决方案(不要求购物)是:

$ source=~/tmp/source   # directory where .gz files will be created
$ target=~/tmp/target   # target directory for uncompressed files
$ archive=~/tmp/archive # archive dir for .gz files
$ shopt -s nullglob     # avoid retiring unexpanded paths
$ for gz in ${source}/*.gz ; do gzip -dc "$gz" > ${target}/$(basename "$gz" .gz) ; mv "$gz" ${archive}/ ; done
$ shopt -u nullglob     # reset nullglob

第一行看起来有点复杂,因为它管理包含空格的源文件名......