URL에서 tar 파일의 일부 폴더 압축 풀기

URL에서 tar 파일의 일부 폴더 압축 풀기

약 200gb 정도의 큰 크기의 tar 파일로 연결되는 URL이 있습니다. Linux 시스템에서 해당 파일의 폴더 하나를 추출해야 합니다. 파일 크기가 크기 때문에 전체 파일을 내 Linux 시스템에 다운로드하고 싶지 않습니다. 또한 소스 시스템에 대한 shh 액세스 권한이 없습니다.

tar.gz 파일의 일부분만 추출할 수 있는 방법이 있나요?

답변1

특정 디렉토리만 추출하려면 정확한 파일 이름을 알아야 합니다. 와일드카드는 tar에서 작동하지 않습니다. 명령은 다음과 같습니다

curl -s -o - <URL>|tar xz /path/file1 /path/file2  ...

답변2

tar형식은 파일(또는 디렉토리)에 직접 주소를 지정하는 것을 허용하지 않습니다. 이는 다음과 같은 사실 때문입니다.원숭이아르골파는 백업 매체에서 순차적으로 읽혀졌습니다.

물론 할 수 있는 일은 관련 부분을 추출한 후 프로세스를 중지하는 것입니다. 당신은 다음과 같이 뭔가를 할 것입니다

curl -o - 'http://your/url' | tar -xvz your_filter

이렇게 하면 파일이 처음부터 다운로드되고 관련 부분이 추출됩니다. 필요한 모든 항목이 확보되면 프로세스를 중지하여 나머지 부분을 다운로드하지 않아도 됩니다.

원본 서버에 대한 액세스 권한이 무엇인지에 따라 더 나은 결과를 얻을 수도 있습니다. 저장 모드가 없는 PHP가 있습니까? 그렇다면 친구를 통해 필요한 것을 추출할 수 있습니다 shell_exec.

관련 정보