![Linux에서 rsync가 모든 타임스탬프(생성 시간)를 보존하지 않는 이유는 무엇입니까?](https://linux55.com/image/188561/Linux%EC%97%90%EC%84%9C%20rsync%EA%B0%80%20%EB%AA%A8%EB%93%A0%20%ED%83%80%EC%9E%84%EC%8A%A4%ED%83%AC%ED%94%84(%EC%83%9D%EC%84%B1%20%EC%8B%9C%EA%B0%84)%EB%A5%BC%20%EB%B3%B4%EC%A1%B4%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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를 통합합니다.
터미널 열기
홈브류 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
rsync 설치
brew install rsync
답변1
리눅스
크롬 시간이 파일 시스템에서 파일이 생성된 시기를 알려줍니다. 콘텐츠가 다른 곳에서 생성되었을 수 있음을 나타내려는 의도는 결코 없습니다.
애플 시스템
rsync
MacOS에서는 "패치"될 수 있습니다. rsync
패치 fileflags, crtimes, hfs-compression을 사용하여 컴파일 하면 rsync
OS X 메타데이터를 처리하고 새 파일에서 원본 파일의 생성 시간을 보존할 수 있습니다. 알아채다st_birth 시간64비트 inode 변형에서만 사용할 수 있습니다. 바라보다 man 2 stat
.
rsync
Linux용 패치 버전 이 있을 수 있습니다 . 나는 아무것도 모르지만.
답변2
이슈 생성 시간(--crtimes)은 Linux에서 유지되지 않습니다. 현재 환승 시간으로 자동 설정됩니다.
crtime을 완벽하게 쿼리할 수 있지만 불행히도 Linux에는 이를 설정할 수 있는 API가 없습니다.https://linux.die.net/man/2/utimes.
Linux에서 동작을 변경하는 방법은 무엇입니까? 복사된 파일과 폴더의 타임스탬프 3개를 모두 유지하고 싶습니다.
이 질문을 확인하세요:ext4fs 파일 시스템에서 파일/디렉토리의 crtime 복사 또는 복원