한 하드 디스크에서 다른 하드 디스크로 / home / user 폴더를 복사해야합니다. 파일은 100,000 개이고 크기는 약 10G입니다.
나는 사용한다
cp -r /origin /destination
때로는 깨진 링크, 권한 등으로 인해 오류가 발생합니다. 따라서 오류를 수정하고 사본을 다시 시작해야합니다.
대상 폴더에 파일이 있으면 다시 복사하지 않고 다시 복사하려고하면 "cp"명령을 어떻게 말할 수 있을지 궁금합니다.
한 하드 디스크에서 다른 하드 디스크로 / home / user 폴더를 복사해야합니다. 파일은 100,000 개이고 크기는 약 10G입니다.
나는 사용한다
cp -r /origin /destination
때로는 깨진 링크, 권한 등으로 인해 오류가 발생합니다. 따라서 오류를 수정하고 사본을 다시 시작해야합니다.
대상 폴더에 파일이 있으면 다시 복사하지 않고 다시 복사하려고하면 "cp"명령을 어떻게 말할 수 있을지 궁금합니다.
답변:
cp -R -u -p /source /destination
-u( 또는--update ) 플래그는이 작업을 수행합니다 :
cp의 맨 페이지에서 :
-u, --update
SOURCE 파일이 대상 파일보다 최신이거나 대상 파일이 누락 된 경우에만 복사
yes n | cp -i /source/* /destination 2>/dev/null
다른 답변의 사용 -u 또는 -n옵션 cp. 이들 중 어느 것도 POSIX에 필요 하지 않습니다 . rsync또 다른 대답 은 아닙니다 . yes주석 중 하나에도 사용 되지 않았습니다 .
그럼에도 불구하고 우리는 재현 할 수 yes n로모그래퍼 while루프. 이는 다음 POSIX 솔루션으로 이어집니다.
while true; do echo n; done | cp -Ri /origin /destination 2>/dev/null