次の2つのコマンドを使用してファイルをダウンロードできることを知っています。
curl -O example.com/file.Zip
wget example.com/file.Zip
しかし、特定のディレクトリに移動してほしい。だから私は次のことができます:
curl -o mydir/file.Zip example.com/file.Zip
wget -O mydir/file.Zip example.com/file.Zip
ファイル名を指定する必要がない方法はありますか?このようなもの:
curl -dir mydir example.com/file.Zip
次の行は、すべてのファイルを指定されたディレクトリにダウンロードします。
wget -P /home/test www.xyz.com
ここで、ファイルは/home/test
ディレクトリにダウンロードされます
私はこれが古い質問であることを知っていますが、あなたがcurlで尋ねたことをすることは可能です
rm directory/somefile.Zip
rmdir directory
mkdir directory
curl --http1.1 http://example.com/somefile.Zip --output directory/somefile.Zip
これがスクリプト化された場合、まず、ファイルが既に存在する場合は削除することを確認してからディレクトリを削除し、ダウンロードをカールする必要があります。
最も簡単な方法は、サブシェル内でcd
することです
(cd somedir; wget example.com/file.Zip)
それをシェル関数にすることができます(たとえば、~/.bashrc
で)
wgetinside() {
( cd $1 ; shift; wget $* )
}
次にwgetinside somedir http://example.com/file.Zip
と入力します
Curlとwgetは自動的にSTDOUTに書き込むので、短い答えはノーです。ダウンロードファイルをディレクトリに配置するオプションは組み込まれていません。
-o/--output <file> Write output to <file> instead of stdout (Curl)
-O, --output-document=FILE write documents to FILE. (WGet)
しかし、ネイティブにSTDOUTに出力するため、次のようなプログラム的なソリューションを提供します。
i="YOURURL"; f=$(awk -F'/' '{print $NF}' <<< $i);curl $i > ~/$f
最初のiは、URL(example.com/file.Zip)を変数として定義します。 f =部分はURLを削除して/file.Zipを残し、そのファイル($ i)をファイル名としてディレクトリ(〜)にカールします。