我正在提取每日备份档案。我只想查看自最后一天以来的新文件。档案包含许多已经存在的文件,我不想覆盖这些文件,所以我使用该--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