別のフォルダ、異なるファイル名、および同じ拡張子に保存するには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"