2017-02-13 124 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

相關問題