压缩多个目录中的文件
问题描述:
我想压缩多个目录中的文件。由于某些原因,它仅压缩第一个目录(/ 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
答
我建议在脚本中改变两件事。 第一个方法是,你如何在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