Linux
如何僅顯示使用 tar 提取的文件,而不是未提取/未覆蓋的文件?
我正在使用
tar -xf /tmp/update.tar -C / -v --keep-newer-files
. 該-v
選項是顯示所有已處理的文件,該--keep-newer-files
選項是自我解釋的。由於所有文件都已經存在,我得到以下輸出:
usr/local/bin/execstate.log tar: Current ‘usr/local/bin/execstate.log’ is newer or same age usr/local/bin/dblist.sh tar: Current ‘usr/local/bin/dblist.sh’ is newer or same age usr/local/bin/dbblacklist.sh tar: Current ‘usr/local/bin/dbblacklist.sh’ is newer or same age
我知道,
--warning-no-ignore-newer
選項切換警告,但輸出是:usr/local/bin/execstate.log usr/local/bin/dblist.sh usr/local/bin/dbblacklist.sh
但是這些文件都不會被提取!
我只想顯示提取的文件(如果它們不存在)!
這可以使用
star
:star -C / -xv -nowarn < /tmp/update.tar
似乎
gtar
沒有完全複製來自star
;-)的功能OSS 友好的 Linux 發行版有二進制包,對於其他發行版,在從http://sourceforge.net/projects/schilytools/files/
star
獲取最近的schilytools
源存檔後編譯它目前的明星版本是 1.6.1。請注意,
-nowarn
僅提取存檔中較新文件的選項和預設設置是從 1985 年開始的,這早於gtar
開始。請注意,由於 Linux 實現了慢速文件系統,因此建議您查看
star
手冊頁中的選項-no-fsync
. 這允許您切換star
到與您使用的一樣不安全的模式gtar
。