回答:
curl
には、 ファイル名の出力がの代わりに書き込まれることを示す単一の引数を取る-o
、--output
オプションがありますstdout
。URLの要素を使用し{}
たり[]
、URL内の要素を囲んだりする場合(通常は複数のドキュメントを取得するために使用されます)、#
ファイル名指定子に数字を続けて使用できます。このような各変数は、取得されるURLに対応する文字列に置き換えられます。複数のファイルを取得するには、内にトークンのカンマ区切りリストを追加します{}
。取得するURLの部分が連番である場合は、で範囲を指定できます[]
。
例:
curl http://www.abc.com/123/{def}/{ghi}/{jkl}.mno -o '#1_#2_#3.mno'
オプション引数を囲む引用符に注意してください(ファイル名が展開された変数のいずれかで始まる場合を除き、必要ありません)。これにより、出力ファイルが生成されますdef_ghi_jkl.mno
。
curl http://www.abc.com/123/{def}/{ghi}/{jkl,pqr,stu}.mno -o '#1_#2_#3.mno'
これは、出力ファイルをもたらすべきであるdef_ghi_jkl.mno
、def_ghi_pqr.mno
とdef_ghi_stu.mno
。
curl http://www.abc.com/123/{def}/{ghi}/[1-3].mno -o '#1_#2_#3.mno'
これは、出力ファイルになるはずですdef_ghi_1.mno
、def_ghi_2.mno
、def_ghi_3.mno
。
wget
には、保存するファイルの名前を指定できるスイッチ-O
(長い形式--output-document
)があります。(おそらくcurlには似たようなものがあります。)そのため、次のことができます。
wget -O def_ghi_jkl.mno http://www.abc.com/123/def/ghi/jkl.mno
そして、あなたが望むことをします。
このネーミングスキームを自動化する場合は、おそらくwgetのラッパーを作成できますが、防弾を取得するのはかなり難しく、間違いなくこの答えの範囲外です。(明示的なURLからダウンロードされた単一のファイルの単純なケースは、正しく取得するのはそれほど難しいことではありませんが、wgetの唯一の操作モードではありません。コマンドラインで。)
-O
は、指定されたファイルにwget自身の出力を-o
書き込むとまったく同じではないことに注意してください。
ここにいくつかのバッシュ置換のトリックがあります
link="http://www.abc.com/123/def/ghi/jkl.mno"
OutputFile=$( echo ${link:23: 23}| tr "/" "_" )
echo $OutputFile
def_ghi_jkl.mno
{$link:23: 23}
「削除されますhttp://www.abc.com/123/」それはあるが${parameter:offset:length}
、その後、tr
置き換えられます/
し_
。
したがって、wgetまたはcurlで簡単に使用できます
wget $link -O $OutputFile
また、awkを使用できます。これにより、入力文字列から最後の3つのファイルが抽出されます。
OutputFile=$( echo $link | awk -F/ 'BEGIN{OFS="_"}{ print $( NF-2),$(NF - 1 ),$NF}' )
必要なファイル名をwget
単独で取得することはできないため、シェルスクリプトで処理する必要があります。
$ url='http://www.example.com/123/def/ghi/jkl.mno'
$ outFile=$(echo "$url" | cut -d / -f 5- | tr / _)
$ echo $outFile
def_ghi_jkl.mno
$ wget "$url" -O "$outFile"
または、1行にしたい場合:
wget "$url" -O "$(echo "$url" | cut -d / -f 5- | tr / _)"
カールを好む場合、最も直接的な方法は次のとおりです。
curl -L -o <filename> "https://drive.google.com/uc?export=download&id=<file id>"
filename:ダウンロードしたファイルの名前
ファイルID:https://drive.google.com/file/d/ file id / viewの形式のGoogleドライブのWebビュー内のファイルのID