压缩多个目录中的文件

时间:2017-02-13 20:23:08

标签: file directory compression

我想在多个目录中压缩文件。出于某种原因,它只压缩第一个目录(/ Sanbox / logs1)而不压缩其他目录(“/ Sanbox / logs2”“/ Sanbox / logs3”“/ Sanbox / logs4”)。任何帮助,将不胜感激。这是我的代码:

#!/bin/bash

LOG_FILES=( "/Sanbox/logs1" "/Sanbox/logs2" "/Sanbox/logs3" "/Sanbox/logs4" )

for file in ${LOG_FILES[file]}/* ; do
    gzip "${file}"
done

1 个答案:

答案 0 :(得分:1)

我建议您在脚本中更改两件事。 第一个是方法,你如何在for循环中使用数组。 尝试使用

进行迭代
for file in ${LOG_FILES[@]}; do
    # code that creates archives
done

使用" @"或" *"因为索引号告诉整个数组应该在for循环中使用。

第二件事是创建目录路径的方式,用于创建存档。尝试添加" / *" for循环体内部,而不是for-do行。

这样的事情应该可以解决问题。

LOG_FILES=( "/Sanbox/logs1" "/Sanbox/logs2" "/Sanbox/logs3" "/Sanbox/logs4" )

for file in ${LOG_FILES[@]}; do
    gzip "${file}"/*; 
done

有关在Bash中使用arrayis的详细信息,请查看Bash Begginers Guide: Array variables