gpt4 book ai didi

command-line - 如何从命令行更新巨大的 zip 存档,删除所有已删除的文件?

转载 作者:行者123 更新时间:2023-12-02 17:54:42 25 4
gpt4 key购买 nike

我正在将文件夹从一台主机同步到另一台主机。然后,我压缩镜像文件夹,以便将其传输到磁带。

现在,当我使用以下脚本压缩文件夹(请记住该文件夹约为 300GB)时,它会保留已从我正在压缩的目录中删除的文件。

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

这是因为我使用了 -u(更新)标志,它不会从存档中删除丢失的文件。

在 rsync 中,我使用标志 --delete,它删除远程服务器上不再存在的文件。对于 zip 存档是否有类似的方法?

最佳答案

我不知道有什么选择可以做到这一点。这是一个简单的脚本,您可以将其用作更强大的东西的基础:

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

关于command-line - 如何从命令行更新巨大的 zip 存档,删除所有已删除的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3523331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com