나는 어리석게도 많은 데이터를 복사해 사용했다 cp -r
.
지금 보니 파일 수정 시간을 놓쳤다는 뜻이라는 걸 깨달았습니다. 나~해야 한다사용된 cp -rp
.
내 디렉토리 구조와 파일은 변경되지 않았습니다. 지금 속성/타임스탬프를 복사할 수 있는 방법이 있습니까? 제 생각에는 rsync
효과가 있을 것 같아요.
답변1
이것은 나에게 잘 작동합니다.
rsync -vrt --size-only /src /dest
/src
올바른 타임스탬프가 있는 폴더이고 바람직합니다. /dest
폴더 파일은 /src 폴더 파일의 수정 시간을 가져옵니다. 생성 시간은 동일하게 유지됩니다.
이 --size-only
명령은 크기에 따라 파일만 비교하므로 기본적으로 아무런 차이가 없습니다. -t
타임스탬프에 복사합니다.
답변2
find
를 사용하여 이 작업을 수행할 수 있습니다 touch
.
cd destination
find -depth -exec touch -r /path/to/source/{} {} \;
이 -depth
옵션은 디렉터리 내용이 설정된 후 디렉터리가 설정되는 시기를 예약합니다. 이는 인수의 하위 문자열일 때 find
보간한다고 가정합니다. {}
그렇지 않은 경우 쉘을 호출하십시오.
find -depth -exec sh -c 'for x; do touch -r "$0/$x" "$x"' /path/to/source {} +
액세스 시간을 복사하려면 touch -a …
다음도 실행하세요.
find -depth -exec touch -a -r /path/to/source/{} {} \; -exec touch -r /path/to/source/{} {} \;