폴더를 gzip으로 압축하고 폴더의 원래 타임스탬프도 보존하고 싶습니다. 누구든지 해결책을 제안할 수 있나요?
아래에 언급된 코드를 사용해 보았습니다. zip이 발생한 시점의 타임스탬프를 얻습니다.
tar -zcvf outputFileName folderToCompress
답변1
몇 개 있어요다른 타임스탬프일반적인 UNIX 파일 시스템에서 , atime
, mtime
. ctime
중 어느 것을 유지하시겠습니까?
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 xf
ls -l
현재의시간("2020년 12월").
다른 결과가 나오면 타임스탬프를 확인하는 방법에 결함이 있을 가능성이 높습니다. 또는 추출한 파일 시스템에서 타임스탬프 수정을 허용하지 않습니다.
답변2
타르볼 자체가 아카이브한 디렉토리와 동일한 타임스탬프를 가지기를 원한다면 tar
이에 대한 옵션은 없지만 사실 후에 그렇게 할 수 있습니다:
touch -r folderToCompress outputFileName