시도 실패 후 남은 파일을 cp하는 방법


23

하나의 드라이브에서 다른 드라이브로 큰 디렉토리를 복사하려고합니다. 완료되기 전에 실수로 로그 아웃 했으므로 파일의 약 80 % 만 복사되었습니다. 처음부터 시작하지 않고 나머지 파일을 복사 할 수 있습니까?

답변:


35

시도해 볼게요

rsync -a /from/file /dest/file

--append, 와 같은 다른 옵션을 사용할 수 있습니다 -P (--partial --progress). 자세한 내용은 man rsync 를 참조하십시오.

또는 사용중인 cp경우을 사용하십시오 cp -u.

부터 man cp:

-u, --update
     copy only when the SOURCE file is newer than the destination file or when the destination file is missing.

1
Rahul cus에게 주어야 할 것입니다. 그가 당신을 이겼습니다.
barro32

3
첫 번째 사본이 갑자기 종료 된 경우 파일 중 하나가 부분적으로 만 복사 될 수 있으며 cp -u크기가 아닌 타임 스탬프 만 검사하므로 신경 쓰지 않을 수 있습니다. 따라서 touch파일을 사용해야하는 경우 먼저 소스 파일이 필요 합니다 . (또는 그냥 사용하십시오 rsync.)
ilkkachu

@ilkkachu 맞습니다. 곧 업데이트하겠습니다.
Rahul

cp는 단일 파일 만 부분적으로 만 전송합니까? 그렇다면 -u는 부분적으로 만 작동하는 디렉토리를 남기는 것처럼 보입니다.
Trevor

15

부분 파일 전송의 경우 cp필요하지 않을 수 있습니다.

rsync대신 사용 하는 것이 좋습니다 . 전송이 실패하더라도 나중에 명령을 다시 실행하면 누락 된 파일 만 복사됩니다.

예:

$ rsync -aPEmivvz from/ to/

(복사됩니다 from/to/디렉토리)

rsync각 전송 후 동기화 및 확인을 수행 하므로 파일이 올바르게 복사되었는지 확인하는 것은 쉽지 않습니다.

SWICH는 세트 -aPEmivvz내 표준 이동-로 선택 등 플러그인 장치와 같은 SD-카드를 포함하여 네트워크 또는 외부 드라이브를 통해 파일을 복사 할 때마다

이들은 거의 항상 사용하는 스위치입니다.

-a: "아카이브", 포함 -rlptgo(재귀, 심볼릭 링크로서의 심볼릭 링크, 권한, 시간, 그룹, 소유자)

-P: "부분 진행률"은 각 파일의 멋진 진행률 표시 줄을 보여줍니다

-E: "실행 가능성"은 실행 가능 여부를 유지합니다.

-m: "빈"은 빈 먼지를 제거합니다

-i: 모든 업데이트에 대한 "요약"인쇄 변경 요약

-vv: "더 자세한 정보"

-z: "압축"


6

cp이 경우 보다는 오히려 당신이 원하는 것은 rsync입니다.

하나의 디렉토리 구조를 새로운 위치로 재귀 적으로 복사하기 만하면됩니다.

rsync -av /path/to/source /path/to/destination 

4

cp이것을 위해 사용해서는 안됩니다 . 다른 사람들이 말했듯이 그것은 작업에 적합한 도구가 아닙니다. 올바른 도구는 목표에 달려 있습니다.

바로 사본을 원할 경우 :

rsync /source /destination일정 수준의 플래그로. 정말 좋은 예는 다른 답변을 참조하십시오.

양방향 업데이트를 원할 경우

unison갈 길입니다. Rsync는 양방향 동기화와의 충돌 해결에서 잘 수행되지 않습니다. 특별히 삭제합니다. 그래서 당신은 양방향 복사를 원합니다unison

백업을 원하고 파일이 텍스트 기반 인 경우을 사용해보십시오 git. Git은 로컬에서 실행할 수 있으므로 "서버"가 필요하지 않습니다. 실제로 git 서버는 파일 공유 방법 일뿐입니다. 백업 드라이브에 git repo를 넣고 "push"할 수 있습니다. 다시 말하지만 파일이 텍스트 기반이고 단방향 백업을 시도하는 경우에만 실제로 작동합니다.

다시 한 번이 아닌 백업을 원한다면 deja-dupe, BackIntime 또는 유사한 옵션을 살펴보십시오. 특정 시점에서 데이터의 스냅 샷을 만듭니다. 그들은 모두 후드 아래에서 rsync를 실행합니다.


4

모든 파일을 다시 복사하고 각 덮어 쓰기에 대한 확인을 요청한 다음 질문에 자동으로 아니오로 대답 할 수 있습니다.

yes n | cp -i /source /dest

(아마도 더 많은 옵션을 사용 -r했으므로 그냥 추가하십시오 cp -pri /source /dest...)


3

rsync다음 옵션과 함께 명령 을 사용하십시오 .

rsync --progress --partial --append /source_file /destination_file
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.