カールはファイルをダウンロードして名前を付けます。。

カールはファイルをダウンロードして名前を付けます。。

次の 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

拡張子は何でもOKです。ファイルに追加されることを願っています。しかし、私はこれをしたくありません:

2d9ec0354908e055acf372.zip

どうすればいいのか気になります。次の方向に乾かす:

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

最終結果は次のファイルになります。

file-a-of-n.zip

答え1

カールは自分でやりたいことをサポートしていません。結果を保存する新しいファイル名を渡すか、HTTPヘッダーでファイル名(および拡張子可能)を決定することができます。

したがって、これは2つのステップで行う必要があります。カールにファイル名を決定させることをお勧めします。したがって、2d9ec0354908e055acf372.zipをダウンロードしてから、「.zip」部分を維持しながらfile-a-of-n.zipに名前を変更できます。

作業を簡単にするには、作業する一時ディレクトリを作成し、a-of-nのサブディレクトリを作成し、そのサブディレクトリにファイルをダウンロードします。これにより、各サブディレクトリで1つのファイルを処理できます。タスク)、拡張子を維持しながら移動して名前を変更することができます。

関連情報