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
しかし、これらのファイルのどれも抽出されません!
抽出されたファイルがまだ存在しない場合にのみ表示したいと思います!
ベストアンサー1
これは以下を使用して行うことができますstar
。
star -C / -xv -nowarn < /tmp/update.tar
gtar
その機能を完全に複製できないようですstar
;-)
OSSに優しいLinuxディストリビューションにはstar
バイナリパッケージがあります。他のディストリビューションの場合は、schilytools
次の場所から最新のソースアーカイブを入手してコンパイルします。http://sourceforge.net/projects/schilytools/files/
現在のスターバージョンは1.6.1です。-nowarn
アーカイブから最新のファイルのみを抽出するオプションとデフォルト値は、この作業が開始される前の1985年から適用されますgtar
。
star
Linuxは遅いファイルシステムを実装しているため、そのオプションのマニュアルページを確認することをお勧めします-no-fsync
。これにより、star
使用しているモードほど安全でないモードに切り替えることができますgtar
。