【问题标题】:find and append new files in tarball在 tarball 中查找并附加新文件
【发布时间】:2013-05-29 13:39:02
【问题描述】:

我在 find 命令之后得到了一个文件列表。现在,需要从中删除现有的存档文件并在命令之后附加文件。

find /u01/apps/ ( -name '.log0' -o -name '.out0' ) -atime +30

返回 .out 和 .log 文件的列表。现在,需要删除 tarball 中的现有文件(手动创建)并附加新文件。

怎么做?

我google了一下,没找到符合这个要求的结果。

【问题讨论】:

    标签: solaris ksh


    【解决方案1】:

    您介意使用两次 find 命令吗?第一个删除文件,然后另一个添加文件? 这可能会有所帮助(也许您应该进行一些调整):

    find /u01/apps/ ( -name '.log0' -o -name '.out0' ) -atime +30 -printf %P\\n | xargs tar -f foobar.tar --delete
    

    然后:

    find /u01/apps/ ( -name '.log0' -o -name '.out0' ) -atime +30 -printf %P\\n | xargs tar -f foobar.tar -r
    

    【讨论】:

    • 谢谢 cesarrse,抱歉,我之前应该提到过,我要把它添加到 crontab 中,所以 printf 不会有用,而且我的 ksh 没有 tar 的 --delete 选项 :(
    • 嗯...您可以尝试将所有文​​件解压缩到临时目录,用新版本替换旧文件,最后再次压缩所有文件。一个既不优雅也不紧凑的解决方案,但它应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2020-06-13
    相关资源
    最近更新 更多