2010-08-19 82 views
1

我rsync從一個主機到另一個文件夾。然後我壓縮鏡像文件夾,以便它可以傳輸到磁帶。如何從命令行更新大型zip歸檔文件,刪除任何已刪除的文件?

現在,當我使用下面的腳本壓縮文件夾(注意該文件夾是〜300GB)時,它會保留已從我壓縮的目錄中刪除的文件。

zip -ru /home/rsync/www.zip /home/rsync/www/ 

這是因爲我使用-u(更新)標誌,它不會從檔案中刪除丟失的文件。

在rsync中,我使用標記--delete,它刪除遠程服務器上不存在的文件。是否有類似的方式使用zip檔案做到這一點?

回答

3

我不知道有任何選項可以做到這一點。這裏是你可以爲一些更穩健的基礎使用一個簡單的腳本:

unzip -lqq archive | cut -c 31- | 
while read -r line 
do if [[ ! -f $line ]] 
    then 
     zip -d archive "$line" 
    fi 
done 

這裏的一個班輪版本:

unzip -lqq archive | cut -c 31- | while read -r line; do if [[ ! -f $line ]]; then zip -d archive "$line"; fi; done 
相關問題