디렉토리를 복사하고 오류를 무시하는 방법

디렉토리를 복사하고 오류를 무시하는 방법

내 Android 장치에 루트 Linux 셸이 열려 있고 cp이를 사용하여 디렉터리를 복사할 때 오류가 발생합니다. 나는 오류가 어디서 오는지 알고 있다고 생각하므로 그것은 내 문제가 아닙니다.

오류가 발생했을 때 종료하는 대신 해당 디렉터리의 모든 내용을 복사할 수 있는 명령을 찾고 싶습니다. 지금 일어나고 있는 일의 예는 다음과 같습니다.

root@flo:/ # cp -r -v /d/* /sdcard/test/
cp '/d/TRRS'
cp: xread: Invalid argument
1|root@flo:/ #

나는 무엇을 해야 합니까?

답변1

한 디렉터리에서 다른 디렉터리로 파일을 복사한 다음 비슷한 문제가 발생했습니다.오류 발생 시 계속. 아이디어는 하나의 도움으로 가능한 한 많은 것을 복제하는 것입니다.운영 체제(나의 경우더반) 도구를 사용하고 가능한 오류를 수동으로 처리합니다.

내가 사용하는 것은힌트 줄리 펠레티에그녀는 제공했다논평도착하다사용rsync. 나는 또한 사용했다이 답변실패한 복사 작업을 분석할 수 있기를 원하기 때문에 템플릿으로 사용합니다.

요약하면 귀하의 사례에 대한 해결책은 다음과 같습니다.

rsync --archive --itemize-changes --delete /d/ /sdcard/test/

설명: rsync소스 경로( )의 내용을 /d/대상 경로( /sdcard/test/)에 복사합니다. 콘텐츠가 대상 디렉터리에 이미 존재하는 경우 차이점만 기록됩니다(증분 전송). 이를 통해 언제든지 프로세스를 중단하고 계속할 수 있습니다. 실패를 보고할 것이다논스톱전체 복사 작업. rsync기본적으로 "빠른 확인"은 파일 크기와 마지막 수정 시간만 사용하여 수행됩니다. 추가 기준을 설정할 수 있습니다(아래 참조).

  • --archive차이점을 확인하기 위해 파일 및 디렉터리 속성 집합을 지정합니다.
  • --itemize-changes각 파일의 요약을 인쇄하도록 지시합니다. 이는 파일이 다른 것으로 간주되는 이유를 이해하는 데 매우 도움이 됩니다 rsync. 이는 복사 작업의 실패를 이해하는 데 도움이 되었습니다. 메시지는 다소 비밀스럽습니다. 더 잘 이해하려면 매뉴얼 페이지를 확인하세요.
  • --delete원본 위치에 존재하지 않는 파일을 대상 위치에서 제거하도록 지정합니다.

나의 경우에는 한 파일 시스템에서 다른 파일 시스템으로 복사할 때 수정된 비교 기준 세트를 사용했습니다. 어쩌면 이것이 귀하의 경우에도 도움이 될 것입니다:

rsync --recursive --links --safe-links --times --group --owner --devices --specials --delete --human-readable --stats --verbose --itemize-changes --progress --modify-window=3 source/ target/

가장 중요한 변경 사항은 다음과 같습니다.

  • --safe-links복사 트리에서 심볼릭 링크만 복사하려면
  • 아니요 --perms(묵시적 --archive) 대상 파일 시스템에 대한 권한이 올바르게 설정되지 않았기 때문입니다.
  • --modify-window=NUM대상 파일 시스템의 설정이 잘못되어 마지막 수정 시간에 대한 허용 오차 설정

관련 정보