하나의 드라이브에서 다른 드라이브로 큰 디렉토리를 복사하려고합니다. 완료되기 전에 실수로 로그 아웃 했으므로 파일의 약 80 % 만 복사되었습니다. 처음부터 시작하지 않고 나머지 파일을 복사 할 수 있습니까?
답변
시도해 볼게요
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.
답변
부분 파일 전송의 경우 cp
필요하지 않을 수 있습니다.
rsync
대신 사용 하는 것이 좋습니다 . 전송이 실패하더라도 나중에 명령을 다시 실행하면 누락 된 파일 만 복사됩니다.
예:
$ rsync -aPEmivvz from/ to/
(복사됩니다 from/
로 to/
디렉토리)
rsync
각 전송 후 동기화 및 확인을 수행 하므로 파일이 올바르게 복사되었는지 확인하는 것은 쉽지 않습니다.
SWICH는 세트 -aPEmivvz
내 표준 이동-로 선택 등 플러그인 장치와 같은 SD-카드를 포함하여 네트워크 또는 외부 드라이브를 통해 파일을 복사 할 때마다
이들은 거의 항상 사용하는 스위치입니다.
-a
: “아카이브”, 포함 -rlptgo
(재귀, 심볼릭 링크로서의 심볼릭 링크, 권한, 시간, 그룹, 소유자)
-P
: “부분 진행률”은 각 파일의 멋진 진행률 표시 줄을 보여줍니다
-E
: “실행 가능성”은 실행 가능 여부를 유지합니다.
-m
: “빈”은 빈 먼지를 제거합니다
-i
: 모든 업데이트에 대한 “요약”인쇄 변경 요약
-vv
: “더 자세한 정보”
-z
: “압축”
답변
cp
이 경우 보다는 오히려 당신이 원하는 것은 rsync
입니다.
하나의 디렉토리 구조를 새로운 위치로 재귀 적으로 복사하기 만하면됩니다.
rsync -av /path/to/source /path/to/destination
답변
cp
이것을 위해 사용해서는 안됩니다 . 다른 사람들이 말했듯이 그것은 작업에 적합한 도구가 아닙니다. 올바른 도구는 목표에 달려 있습니다.
바로 사본을 원할 경우 :
rsync /source /destination
일정 수준의 플래그로. 정말 좋은 예는 다른 답변을 참조하십시오.
양방향 업데이트를 원할 경우
unison
갈 길입니다. Rsync는 양방향 동기화와의 충돌 해결에서 잘 수행되지 않습니다. 특별히 삭제합니다. 그래서 당신은 양방향 복사를 원합니다unison
백업을 원하고 파일이 텍스트 기반 인 경우을 사용해보십시오 git
. Git은 로컬에서 실행할 수 있으므로 “서버”가 필요하지 않습니다. 실제로 git 서버는 파일 공유 방법 일뿐입니다. 백업 드라이브에 git repo를 넣고 “push”할 수 있습니다. 다시 말하지만 파일이 텍스트 기반이고 단방향 백업을 시도하는 경우에만 실제로 작동합니다.
다시 한 번이 아닌 백업을 원한다면 deja-dupe, BackIntime 또는 유사한 옵션을 살펴보십시오. 특정 시점에서 데이터의 스냅 샷을 만듭니다. 그들은 모두 후드 아래에서 rsync를 실행합니다.
답변
모든 파일을 다시 복사하고 각 덮어 쓰기에 대한 확인을 요청한 다음 질문에 자동으로 아니오로 대답 할 수 있습니다.
yes n | cp -i /source /dest
(아마도 더 많은 옵션을 사용 -r
했으므로 그냥 추가하십시오 cp -pri /source /dest
…)
답변
rsync
다음 옵션과 함께 명령 을 사용하십시오 .
rsync --progress --partial --append /source_file /destination_file