2017-02-13 125 views
0

我想压缩多个目录中的文件。由于某些原因,它仅压缩第一个目录(/ 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

我建议在脚本中改变两件事。 第一个方法是,你如何在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 

有关猛砸使用arrayis更多信息,您可以检查Bash Begginers Guide: Array variables

相关问题