File 压缩多个目录中的文件
我想压缩多个目录中的文件。出于某种原因,它只压缩第一个目录(/Sanbox/logs1),而不压缩其余目录(“/Sanbox/logs2”“/Sanbox/logs3”“/Sanbox/logs4”)。任何帮助都将不胜感激。这是我的密码:File 压缩多个目录中的文件,file,directory,compression,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
#!/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
有关在Bash中使用arrayis的更多信息,请查看