使用 tar 仅显示真正提取的(未跳过的)文件

使用 tar 仅显示真正提取的(未跳过的)文件

我正在提取每日备份档案。我只想查看自最后一天以来的新文件。档案包含许多已经存在的文件,我不想覆盖这些文件,所以我使用该--skip-old-files选项,这很好。

但我想仅列出那些文件实际提取的并忽略那些被跳过的内容,因为它们已经存在。

例子:

我当前的命令是:

tar --verbose --skip-old-files --extract --file=2019-02-10.tar.gz

输出是(其中 file1 和 file2 已经存在,file3 是新的):

file1.zip
tar: file1.zip: skipping existing file
file2.zip
tar: file2.zip: skipping existing file
file3.zip

我只需要输出中的 file3.zip 。是否可以?

答案1

如果这是写入目录的唯一进程,那么您可以创建一个临时文件,不以详细模式提取文件,然后查看更改时间比临时文件更新的文件

例如

MYTMP=$(mktemp)
tar --skip-old-files --extract --file=2019-02-10.tar.gz
find . -cnewer $MYTMP
rm $MYTMP

相关内容