메타데이터 손실 없이 한 컴퓨터에서 다른 컴퓨터로 파일을 복사하는 방법은 무엇입니까?

메타데이터 손실 없이 한 컴퓨터에서 다른 컴퓨터로 파일을 복사하는 방법은 무엇입니까?

이 질문과 비슷하지만 더 까다롭습니다.파일 생성 시간을 전혀 수정하지 않고 파일을 복사하는 방법은 무엇입니까?

"수정" 및 "생성" 날짜를 혼동하지 않고 컴퓨터 간에 파일을 복사하고 싶습니다.

목적은 diff내가 작업할 때 동기화할 수 있었던 3대의 다른 컴퓨터에 있는 일부 프로젝트 코드를 비교하는 것입니다. 하지만 저는 한 번에 한 대의 컴퓨터에서만 작업했는데, 지금은 어떤 컴퓨터가 가장 최신 버전인지 기억이 나지 않습니다. 그것은 엉망이고, 나는 복사본을 완전히 통합하고 싶습니다(그리고 버전 관리하에 두기를 바랍니다).

따라서 도구를 사용할 때 diff파일 수정 날짜를 알면 변경 사항을 이해하고 병합하는 데 도움이 될 수 있습니다.

컴퓨터 3대 중 2대는 Linux이고 1대는 Windows 8입니다.

위의 목표를 달성하는 다른 방법이나 그러한 상황에서의 모범 사례를 환영합니다.

답변1

Linux(및 기타 Unix 계열 OS)에서는 플래시 드라이브 또는 SMB/FTP 서버 간에 파일을 복사할 수 있습니다.

cp -p

그러면 타임스탬프가 보존됩니다.

서버에 업로드할 때 타임스탬프가 보존될 수 있는지 모르겠습니다.

답변2

일반적으로 파일/폴더에는 세 가지 속성이 있습니다. 생성, 수정 및 액세스 시간. 접속 시간은 크게 중요하지 않습니다. Linux에서는 생성 시간이 사용되지 않습니다(표준 절차를 사용하여 액세스할 수 없음). 따라서 유일하게 중요한 속성은 수정 시간입니다. OS의 도구를 사용하여 데이터를 복사하는 동안 수정 시간은 변경되지 않습니다(적어도 Linux의 경우). 그렇지 않은 경우 전송하기 전에 데이터를 압축하고 다른 쪽 끝에서 압축을 풀 수 있습니다. 일반적으로 백업 도구는 모든 속성을 유지합니다.
모든 속성을 엄격하게 보존하려면 다음 방법을 사용할 수 있습니다.

cp옵션 -aaka --archive또는 --preserve= all
또는 .
rsync-t

이러한 명령은 기본적으로 Linux에서 사용할 수 있습니다(Windows용으로도 다운로드 가능).
명령줄 도구에 관심이 없다면 속성 복사를 지원하는 동기화 도구를 사용하여 데이터를 복사하세요.

답변3

컴퓨터에서 가장 좋은 코드가 무엇인지 확신할 수 없다면 세 개의 소스 디렉터리를 모두 한 컴퓨터에 복사한 다음 파일별로 병합하는 것이 가장 좋다고 생각합니다.병합 도구.

또 다른 방법은 머신에서 git repo를 생성하고 다른 컴퓨터에서 소스를 복사하여 git repo 파일을 덮어쓰거나 새 브랜치에 추가한 다음 다음을 사용하는 것입니다.자식의 병합. Windows의 경우 선호합니다.거북이 Git 클라이언트모든 기본 버전 관리 작업을 수행합니다.

메타데이터 복사본의 경우 다른 사람이 제안한 대로 , 을 사용할 수 있습니다 rsync -t. cp --preserve=allFTP 전송의 경우 를 사용할 수 있습니다 scp -p.

답변4

두 개의 Linux 컴퓨터 사이에서 사용할 수 있습니다재동기화, 타임스탬프를 그대로 유지합니다.
Windows의 경우 다음을 사용할 수 있습니다.로보카피타임 스탬프를 변경하지 않고 파일을 복사하려면 이를 사용하여 Linux 상자의 FTP 서버에서 Windows로 파일을 복사할 수 있습니다.

관련 정보