tar 아카이브에 많은 수의 파일(100,000개 이상)을 저장해야 하는데 오류가 발생했습니다./bin/sh: /bin/tar: 실행할 수 없습니다. [매개변수 목록이 너무 깁니다.].
UNIX Solaris tar 또는 GNU tar에 제한 사항이 있습니까? 아니면 ZFS 문제입니까? 저는 ZFS와 함께 Solaris 11.3을 실행하고 있습니다.
답변1
이는 tar의 제한 사항이 아닙니다. 프로그램에 전달할 수 있는 최대 인수 크기를 초과했습니다. 파일 이름 목록이 파일에 있으면 GNU tar의 -T
옵션을 사용할 수 있습니다.
tar -c -f output.tar -T filelist.txt
-
Tar는 파일 이름을 사용하여 표준 입력에서 파일 목록을 받을 수도 있습니다. 예를 들어 모든 파일과 하위 디렉터리를 포함하는 아카이브를 생성하려는 경우 mydir
다음 출력을 전달할 수 있습니다 find
.
find mydir | tar -c -f output.tar -T -
답변2
다른 사람들이 말했듯이 문제는 (아마도) 아카이브 크기가 아니라 명령 길이입니다. 당신은 할 수 있어야합니다
타르 CF압축된 패키지 파일파일 001 파일 002 … 파일 100 타루프압축된 패키지 파일파일 101 파일 102 … 파일 200 타루프압축된 패키지 파일파일 201 파일 202 ... 파일 300 ︙아니면
타르 CF압축된 패키지 파일파일 001아카이브를 만든 다음
타르 CF압축된 패키지 파일 파일002…파일100 타루프압축된 패키지 파일파일 101 파일 102 … 파일 200 타루프압축된 패키지 파일파일 201 파일 202 ... 파일 300 ︙(아마도
xargs
)가 추가되었습니다.