읽기 권한 없이 디렉터리 구조를 백업하는 방법은 파일 및 디렉터리를 무시합니다.

읽기 권한 없이 디렉터리 구조를 백업하는 방법은 파일 및 디렉터리를 무시합니다.

읽을 권한이 없는 일부 파일 및/또는 디렉터리가 포함된 디렉터리 구조를 백업하는 방법에 대한 아이디어가 있습니까? 백업을 중단하지 않고 이를 무시하고 싶습니다(tar? jar?).

답변1

--ignore-failed-readGnu tar에는 이를 수행하는 옵션이 있습니다 .

GNU tar를 사용하지 않는 경우 백업할 파일 목록 또는 제외할 파일 목록을 생성할 수 있습니다. GNU find에는 -readable파일에 대한 읽기 권한이 있는지 테스트하는 조건자가 있습니다. 다른 버전의 find의 경우 단독으로 사용하려면 find파일 권한( -perm) 및 소유권( -user, )을 사용하여 group이를 근사화 해야 하므로 그룹, ACL 등을 처리하기가 어렵습니다. 외부 프로그램이나 내장 쉘을 호출하여 정확한 테스트를 할 수 있습니다 test. 다음은 제외할 줄 바꿈으로 구분된 파일 이름 목록을 읽을 수 있는 tar옵션이 있다고 가정하는 예입니다 (구문 분석 문제를 피하기 위해 줄 바꿈이 포함된 파일 이름 건너뛰기).-X

find . ! -name '*
*' -exec sh -c 'for x; do [ -r "$x" ] || printf "%s\\n" "$x"; done' _ {} |
tar -cf backup.tar -X - .

답변2

경로에 줄 바꿈이 없으면 다음을 수행할 수 있습니다.

find . -type f -readable -print | tar cf test.tar -T -

이는 GNU 전용일 수 find있으며 tar일부 파일 시스템(NFS, FUSE)에서는 작동하지 않을 수 있습니다. 개행 문자가 있거나 있을 수 있는 경우 for -print0대신 사용 하고 for 를 추가하세요 .-printfind--nulltar

관련 정보