컬은 파일을 다운로드하고 이름을 지정합니다..

컬은 파일을 다운로드하고 이름을 지정합니다..

다음과 같은 URL이 여러 개 있다고 가정해 보겠습니다.

https://domain.com/foo/bar/2d9ec0354908e055acf372

URL의 확장자가 무엇인지 모르고 파일 형식을 알려주는 다른 "프런트 엔드" 정보도 없습니다.

하지만 프론트엔드 파일의 헤더가 무엇인지는 알고 있습니다. 그래서 파일을 저장할 때 헤더를 하드코딩한 다음 실제 파일의 확장자에 추가하고 싶습니다. 따라서 파일 제목이 "File A of N"이면 "file-a-of-n"이라고 부르고 싶습니다(그냥 적어둡니다). 그렇다면 최종 결과는 다음과 같기를 바랍니다.

file-a-of-n.zip

아니면 확장이 무엇이든 간에요. .zip이 특정 파일이 아닐 수도 있으므로 .tar.gz결과는 다음과 같습니다.

file-a-of-n.tar.gz

확장자가 무엇이든 괜찮습니다. 파일에 추가되기를 바랍니다. 하지만 나는 이것을 원하지 않습니다:

2d9ec0354908e055acf372.zip

어떻게 해야 할지 궁금합니다. 다음 방향으로 말리는 것 :

curl -o file-a-of-n.(extension) https://domain.com/foo/bar/2d9ec0354908e055acf372

최종 결과는 다음과 같은 파일이 됩니다.

file-a-of-n.zip

답변1

컬은 직접 수행하려는 작업을 지원하지 않습니다. 결과를 저장할 새 파일 이름을 전달하거나 HTTP 헤더에서 파일 이름(및 확장자 가능)을 결정하도록 할 수 있습니다.

따라서 이 작업은 두 단계로 수행해야 합니다. 컬이 파일 이름을 결정하도록 하는 것이 좋습니다. 따라서 2d9ec0354908e055acf372.zip을 다운로드한 다음 ".zip" 부분을 유지하면서 file-a-of-n.zip으로 이름을 바꿀 수 있습니다.

작업을 더 쉽게 하려면 작업할 임시 디렉터리를 만든 다음 a-of-n에 대한 하위 디렉터리를 만들고 해당 하위 디렉터리에 파일을 다운로드하세요. 그러면 각 하위 디렉터리에서 하나의 파일을 처리할 수 있습니다. 작업), 확장명을 유지하면서 이동하고 이름을 바꿀 수 있습니다.

관련 정보