zip -o(--latest-time)と同等のtar?

zip -o(--latest-time)と同等のtar?

Zipユーティリティを使用すると、次のことができます。

zipアーカイブの「最後の修正」時間を、zipアーカイブのエントリの中で見つかった最新(最も古い)「最後の修正」時間に設定します。

そして

zip -o [...]

または

zip --latest-time [...]

TARで同じことを行う最も簡単な方法は何ですか?

ベストアンサー1

new_file="$(find dir/ -type f -exec stat --printf='%n\0%Y\n' {} + | sort -k2,2 -nt '\0' | tail -n1 | cut -d '' -f1)"; tar -zcf foo.tar.gz dir/; touch -r "$new_file" foo.tar.gz

何が起こるかの例

tar -zcf foo.tar.gz dir/; touch -r fileX foo.tar.gz

あなたは変わらなければなりませんfoo.tar.gz目次/上記のコマンドで

それ

  • すべてのファイルを検索目次/(タールと同じ)
  • エポック以降に最後に変更されたタイムスタンプを秒単位で取得します。
  • 数字でソートし、最も低いもの(最新)を取得します。
  • touchはfoo.tar.gzタイムスタンプを調整するときにこのファイルを参照として使用します。

おすすめ記事