Linux에서 rsync가 모든 타임스탬프(생성 시간)를 보존하지 않는 이유는 무엇입니까?

Linux에서 rsync가 모든 타임스탬프(생성 시간)를 보존하지 않는 이유는 무엇입니까?

stat현재 rsync 3.2.3 버전을 사용하고 있으며 명령을 실행하면 내 파일에 대한 이 정보가 표시됩니다.

stat '/test.txt'
File: /test.txt
Size: 0     Blocks: 0
IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 11949
Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/liveuser)   Gid: ( 1000/liveuser)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2021-02-24 03:17:27.142676494 +0100
Modify: 2021-02-24 03:17:27.142676494 +0100
Change: 2021-02-24 03:17:27.142676494 +0100
Birth: 2021-02-24 03:17:27.142676494 +0100

액세스, 수정 및 생성 타임스탬프를 유지하고 싶습니다. rsync에서 이 명령을 사용하세요

rsync --atimes --times --crtimes 

또는

rsync -UtN

이슈 생성 시간(--crtimes)은 Linux에서 유지되지 않습니다. 현재 환승 시간으로 자동 설정됩니다.

Linux에서 동작을 변경하는 방법은 무엇입니까? 복사된 파일과 폴더의 타임스탬프 3개를 모두 유지하고 싶습니다.

macOS에서 동일한 작업을 수행하면 제대로 작동합니다.

편집하다

macOS 10.13 및 macOS 11에서는 homebrew를 설치하고 최신 rsync 3.2.3을 다운로드하면 됩니다. 기본적으로 macOS는 매우 오래된 rsync 버전 2.6.9를 통합합니다.

  1. 터미널 열기

  2. 홈브류 설치

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

  3. rsync 설치

    brew install rsync

답변1

리눅스

크롬 시간이 파일 시스템에서 파일이 생성된 시기를 알려줍니다. 콘텐츠가 다른 곳에서 생성되었을 수 있음을 나타내려는 의도는 결코 없습니다.

애플 시스템

rsyncMacOS에서는 "패치"될 수 있습니다. rsync패치 fileflags, crtimes, hfs-compression을 사용하여 컴파일 하면 rsyncOS X 메타데이터를 처리하고 새 파일에서 원본 파일의 생성 시간을 보존할 수 있습니다. 알아채다st_birth 시간64비트 inode 변형에서만 사용할 수 있습니다. 바라보다 man 2 stat.

rsyncLinux용 패치 버전 이 있을 수 있습니다 . 나는 아무것도 모르지만.

답변2

이슈 생성 시간(--crtimes)은 Linux에서 유지되지 않습니다. 현재 환승 시간으로 자동 설정됩니다.

crtime을 완벽하게 쿼리할 수 있지만 불행히도 Linux에는 이를 설정할 수 있는 API가 없습니다.https://linux.die.net/man/2/utimes.

Linux에서 동작을 변경하는 방법은 무엇입니까? 복사된 파일과 폴더의 타임스탬프 3개를 모두 유지하고 싶습니다.

이 질문을 확인하세요:ext4fs 파일 시스템에서 파일/디렉토리의 crtime 복사 또는 복원

관련 정보