Linux에서 디렉토리를 압축하려고합니다. tar.gz을 만들었습니다. 그 이유는 디렉토리에 * .o 파일과 일부 pdf 파일이 포함되어 있기 때문입니다.tar로 디렉토리를 압축하는 동안 큰 파일을 제외하는 방법
디렉토리를 압축 할 수있는 방법이 있습니까? 은 미리 정의 된 크기보다 큽니다. tar 명령에 --exclude 인수가 있지만 1MB보다 큰 파일을 거부하고 싶습니다. 이것은 파일의 이름이 아니라 제약입니다.
Linux에서 디렉토리를 압축하려고합니다. tar.gz을 만들었습니다. 그 이유는 디렉토리에 * .o 파일과 일부 pdf 파일이 포함되어 있기 때문입니다.tar로 디렉토리를 압축하는 동안 큰 파일을 제외하는 방법
디렉토리를 압축 할 수있는 방법이 있습니까? 은 미리 정의 된 크기보다 큽니다. tar 명령에 --exclude 인수가 있지만 1MB보다 큰 파일을 거부하고 싶습니다. 이것은 파일의 이름이 아니라 제약입니다.
find ./myRep/ -type f -size -1024k | xargs를 타르 cfvz 한마디 myArchive.tar
는,이 식의 첫번째 부분의 크기가 1024K 이하 재귀 ./myRep/ 및 제 부분으로부터 타르/GZIP 압축 파일을 생성하는 파일리스트를 생성.
find (-size 플래그와 함께)와 xargs를 조합하여 tar로 전달할 수 있습니다. 같은
뭔가 : 100,000 이상의 파일에 대한
find . -size -100k -print | xargs tar cvf archive.tar
적은. 사람이 1 월 필립 Gehrcke의 응답을 바탕으로 다른 크기 옵션
위해 찾아보기 : 파일에 대한
find . -type f -size -1024k | tar -czf --null -T - -f archive.tar.gz
1M 이하. OS X 및 Ubuntu Linux에서 테스트되었습니다.
데비안 스퀴즈에서 나는 다음과 같은 에러를 보았습니다 : 'tar : 다중 아카이브 파일은 -M 옵션이 필요합니다 ' 그러나이 파일은 '찾는다. 타입 - 크기 -100k | tar -cz -f test.tgz -T -' – Fluxine
@Fluxine 그 중 하나를 작동시키지 못했습니다. http://stackoverflow.com/q/5891866/63736을 보았고'find. -type f -size 1M -print0 | tar -vzcf backup.tar.gz --null -T -' –
'... | tar c --null -T -'해결책은 임의로 긴 파일 목록에서 잘 작동하지만 사소한 단점이 있습니다. 전체 파일 목록을 메모리에 저장합니다. 작은 파일이 많으면 문제가 될 수 있습니다. –
메모리가 충분하면 (즉, 대부분의 경우 사실임) 파일 목록이 간편하게 메모리에 저장되면 위의 해결 방법이 가장 좋습니다 (위의 ...| tar c --null -T -
). 그러나 xargs 은에 메모리 제한이있는 경우 해당 위치를 갖지만 여러 타르 호출이 나쁜 영향을주지 않도록 적절히 사용해야합니다.
find . -type f -size -1024k | xargs tar c | gzip > archive.tar.gz
이 (당신은 또한 cz
를 사용와 gzip 아카이브을 연결로 | gzip
을 생략 할 수 있습니다 결과 파일에 함께 gzip으로 연결된 타르 아카이브 파일, 결과는 여전히 유효 :
tar xizf archive.tar.gz
이 반복적으로 타르를 호출 할 수 있습니다
는 당신이 첫 번째 아카이브를 추출 할뿐만 아니라 타르의--ignore-zeros
또는-i
옵션을 사용이 결과 파일의 압축을 풉니 다. '찾으십시오. -print0 | tar --null -T - ...'(tar 매뉴얼에서 : "--files-from '의 파일 이름으로 단일 대시를 제공하면 (즉, --files-from = - 또는 -T -) 파일 이름을 표준 입력에서 읽습니다. ") –