를 사용하여 일부 파일을 다른 곳으로 cp
복사하면 복사 된 파일의 타임 스탬프가 복사 시간으로 설정됩니다.
이것을 피할 수있는 방법이 있습니까?
타임 스탬프를 변경하지 않고 파일을 복사해야합니다.
답변
cp -p
트릭을 수행합니다. Linux의 경우 :
-p
와 동일--preserve=mode,ownership,timestamps
-p
cp가 사본에서 각 소스 파일의 다음 속성 인 수정 시간, 액세스 시간, 파일 플래그, 파일 모드, ACL, 사용자 ID 및 그룹 ID를 권한에 의해 허용 된대로 유지합니다.
그리고 OS X의 경우 :
-p
cp가 권한에서 허용하는대로 수정 시간, 액세스 시간, 파일 플래그, 파일 모드, 사용자 ID 및 그룹 ID와 같이 사본에서 각 소스 파일의 다음 속성을 유지합니다. 리소스 포크를 포함한 액세스 제어 목록 (ACL) 및 확장 특성 (EA)도 보존됩니다.
답변
GNU Coreutilscp
에서 사용할 때 사용자 아이디, 그룹 아이디 또는 파일 모드와 같은 속성이 아닌 타임 스탬프 만 보존하기 위해 보존 할 속성 목록을 명시 적으로 지정할 수있는 방법이 있습니다.--preserve
cp --preserve=timestamps source destination
이 구문은 다른 Unices에서 지원되지 않을 수도 있습니다. 대안은 대부분의 설치에서 사용할 수 있는 --times
매개 변수 를 사용하는 것 rsync
입니다.
답변
Unix 파일 시스템에는 액세스 시간 (atime), 수정 시간 (mtime) 및 inode 변경 시간 (ctime)이 세 번 있습니다. 터치 프로그램으로 액세스 시간과 수정 시간을 변경할 수 있습니다 (예 :
cp orig 사본 -r 원본 복사를 터치
그러나 inode 변경 시간은 변경할 수 없습니다.
답변
최근에 비슷한 것을하지만 symlink를 대신 사용해야했습니다. 심볼릭 링크를 만들고 orignal 타임 스탬프를 유지하려면cp -ps src_file dst_symlink