元のタイムスタンプを維持しながら、フォルダをGzipに圧縮します。

元のタイムスタンプを維持しながら、フォルダをGzipに圧縮します。

フォルダをgzipで圧縮し、フォルダの元のタイムスタンプも保存したいと思います。誰でも解決策を提案できますか?

以下のコードを試してみました。 zipが発生した時点のタイムスタンプを取得します。

tar -zcvf outputFileName folderToCompress

ベストアンサー1

いくつかあります。他のタイムスタンプ一般的なUNIXファイルシステムではatime、、、mtimectimeどちらを維持しますか?

mtime維持(作業の実行時に表示される内容)に興味がある場合、ls -lこれは既に次のようにデフォルトで機能します。

$ date
Wed Dec  2 08:52:36 CET 2020
$ tar --version
tar (GNU tar) 1.32
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.

$ find /usr/share/tasksel/ -exec ls -lhad {} +
drwxr-xr-x 3 root root 4.0K Nov  6  2017 /usr/share/tasksel/
drwxr-xr-x 2 root root 4.0K Nov 20 12:21 /usr/share/tasksel/descs
-rw-r--r-- 1 root root 7.9K Nov 14 16:06 /usr/share/tasksel/descs/debian-multimedia-tasks.desc
-rw-r--r-- 1 root root  21K Nov 18 02:40 /usr/share/tasksel/descs/debian-tasks.desc


$ cd /tmp; rm -rf foo.tgz

$ tar czf foo.tgz /usr/share/tasksel/
tar: Removing leading '/' from member names
$ ls -lhan foo.tgz 
-rw-r--r-- 1 1000 1000 4.6K Dec  2 08:54 foo.tgz
$ tar tvf foo.tgz
drwxr-xr-x root/root         0 2017-11-06 09:45 usr/share/tasksel/
drwxr-xr-x root/root         0 2020-11-20 12:21 usr/share/tasksel/descs/
-rw-r--r-- root/root     20596 2020-11-18 02:40 usr/share/tasksel/descs/debian-tasks.desc
-rw-r--r-- root/root      8033 2020-11-14 16:06 usr/share/tasksel/descs/debian-multimedia-tasks.desc
$ tar xf foo.tgz
$ find /tmp/usr/share/tasksel/ -exec ls -lhadn {} + 
drwxr-xr-x 3 1000 1000 4.0K Nov  6  2017 /tmp/usr/share/tasksel/
drwxr-xr-x 2 1000 1000 4.0K Nov 20 12:21 /tmp/usr/share/tasksel/descs
-rw-r--r-- 1 1000 1000 7.9K Nov 14 16:06 /tmp/usr/share/tasksel/descs/debian-multimedia-tasks.desc
-rw-r--r-- 1 1000 1000  21K Nov 18 02:40 /tmp/usr/share/tasksel/descs/debian-tasks.desc

ご覧のとおり、すべてのフォルダとファイルのタイムスタンプはtarball(コマンド実行時)とextractおよびInspectionを使用するときにtar tvf保存されます。これまでは、抽出されたファイルの(修正)タイムスタンプが元のファイルのタイムスタンプ(「2017年11月および2020年11月」)と一致し、異なるため「保存」されました。tar xfls -l現在の時間(「2020年12月」)。

他の結果が出ると、タイムスタンプの確認方法に欠陥がある可能性が高くなります。または、抽出したファイルシステムでタイムスタンプを変更することはできません。

おすすめ記事