%20%E3%81%AB%E7%9B%B8%E5%BD%93%E3%81%99%E3%82%8B%E3%82%82%E3%81%AE%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
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
あなたは変わるべきだtar.gz ファイル、ディレクトリ/上記のコマンドで
それ
- すべてのファイルを検索ディレクトリ/(タールを塗られるのと同じ)
- エポックからの秒数で最終変更タイムスタンプを取得します
- 数値順に並べ替えて一番下のもの(最新)を取得します
- touch は、foo.tar.gz のタイムスタンプを調整するときにそのファイルを参照として使用します。