1
我知道這是基本的問題,但請你幫我.I壓縮,用tar命令使用「焦油」命令循環
for i in server.log.2016-07-05 server.log.2016-07-06 ; do tar -zcvf server2.tar.gz $i; done
上述循環的輸出是存檔我的服務器日誌文件:
server.log.2016-07-05
server.log.2016-07-06
但同時列出使用tar -tvf server2.tar.gz
獲得的輸出文件是:
rw-r--r-- root/root 663643914 2016-07-06 23:59 server.log.2016-07-06
我。即,我存檔了兩個文件,但只顯示了一個文件,這意味着存檔不具備這兩個文件對嗎?請幫助。
我剛剛測試過這兩個文件,但我的文件夾有多個文件。由於我沒有得到預期的輸出,我沒有處理文件夾中的所有文件。確切的循環,我要使用方法是:
Previousmonth=$(date "+%b" --date '1 month ago')
for i in $(ls -l | awk '/'$Previousmonth'/ && /server.log./ {print $NF}');do;tar -zcvf server2.tar.gz $i;done
我試圖壓縮和歸檔多個文件,但同時使用tar -tvf
它沒有顯示所有文件列表中的文件。
感謝回覆,你提到的兩個命令都有效,但我們計劃使用crontab來執行它。所以''find'方法在所有的月份中都要提及日期(2016-xx-xx)。那麼什麼是歸檔解決方案並壓縮而不是'ls -l' – karthikraj
如果日誌文件的名稱與您的示例一致,那麼您不需要'ls'或任何其他命令。使用簡單的shell通配符查看我更新的解決方案。 – janos