tar 아카이브는 잠시 후 다시 시작됩니다.

tar 아카이브는 잠시 후 다시 시작됩니다.

200,000개 이상의 파일이 들어 있는 폴더가 있습니다. 특정 이름으로 시작하는 파일만 보관하고 싶습니다(파일 이름이 매우 큼). 예 sudo find /path/to/_Logs -name "RATE*" -print0 | xargs -0 tar -czf logs_rate.tgz.

그러나 때때로 다음과 같은 메시지가 나타납니다.tar: 멤버 이름에서 선행 "/" 제거그리고 저장은 0으로 재설정되고 다시 시작됩니다. 그 과정을 마치고 나니 총 22,000개의 파일 중 25개 정도의 파일밖에 남지 않았습니다. 내가 무엇을 놓쳤거나 무엇을 잘못했나요?

답변1

의견에서 이미 알 수 있듯이 tar여러 번 실행하면 됩니다 xargs. 이 문제를 해결하는 가장 확실한 방법은 아카이브를 처음부터 다시 만드는 대신 파일을 아카이브에 추가하는 것입니다.

 sudo find /path/to/_Logs -name "RATE*" -print0 | xargs -0 tar -rf logs_rate.tar

그런 다음 압축하십시오.

리더십에 관한 말은 /단지 경고일 뿐이다.

답변2

해결 방법을 찾았습니다. 긴 이름과 큰 콘텐츠를 우회하려면 명령을 두 부분으로 분할하세요.

  1. sudo find /path/to/_Logs -name "RATE*" > test1.txt
  2. tar -czvT test1.txt -f logs.tgz

답변3

tar와 함께 xargs를 사용하지 마십시오. 이렇게 할 필요는 없습니다.

Gnu/tar(그리고 다른 tar에도 있다고 생각합니다) 에는 사이드 파일에서 파일 이름을 무제한으로 읽을 수 있는 옵션 -T(긴 형식 : )이 있습니다. --files-from(또한 를 사용하여 stdin을 통해 보낼 수도 있습니다 -T -.)

--null옵션을 사용하면 -T목록에 다음과 같은 xargs(같은 이유로) null로 끝나는 문자열이 포함될 수 있습니다.

-T여러 가지 옵션을 사용할 수 있습니다. 로 시작하는 경로 이름에 유의하세요 -.-T-C

관련 정보