Wgetのファイル名は異なりますが、拡張子は同じです。

Wgetのファイル名は異なりますが、拡張子は同じです。

別のフォルダ、異なるファイル名、および同じ拡張子に保存するにはwgetが必要ですが、ダウンロードする前にファイル名はありません。


たとえば、次のような場合があるとします。

http://ge.tt/api/1/files/someFile/0/blob?download

IDでダウンロードする必要がありますが、「fj39ejd」フォルダにdownloads

次の場所に保存する最良の方法は何ですか?

/path/to/downloads/fj39ejd.[extension it had before downloading]

これを達成する方法について提案がありますか?

ベストアンサー1

ローカルファイルの名前をサーバーで選択した名前として指定するには、次のようにします。wget --content-disposition --trust-server-names

サーバーが選択した拡張子にローカルに選択した名前を割り当てるには、後で名前を変更する必要があります。最も簡単な方法は、空のディレクトリを作成し、wgetそのディレクトリを呼び出して、作成したファイルの名前を目的の名前に変更することです。

dir="$(TMPDIR=$PWD mktemp -d)" &&
  (cd "$dir" && wget --content-disposition --trust-server-names 'http://ge.tt/api/1/files/someFile/0/blob?download') &&
  set "$dir/"* &&
  mv "$1" "fj39ejd.${1#"$dir"/*.}" &&
  rmdir "$dir"

おすすめ記事