私は現在カールを使ってこれをやっています。
curl https://example.com/file -o file
自分のディレクトリに名前のファイルがすでにある場合、file
このコマンドはそのファイルを上書きします。代わりに、ファイルが既に存在するというエラーメッセージが返されたくなります。
カールだけを使ってこれを行うことはできますか?これを行うフラグは表示されず、bashスクリプトでコマンドを実行しないため、コマンドを実行する前に比較演算子を使用することはできません。
答え1
次のテストを使用して、ディレクトリに名前があるかどうかをテストできます-e
。
if [ -e "filename" ]; then
echo 'File already exists' >&2
exit 1
fi
curl -o "filename" "URL"
この時点でスクリプトを終了しないようにするには、次の手順を実行します。
if [ -e "filename" ]; then
echo 'File already exists' >&2
else
curl -o "filename" "URL"
fi
名前が通常のファイル、ディレクトリ、名前付きパイプ、または他の種類のファイルシステムオブジェクト名であるかどうかにかかわらず、名前が存在する場合、テストは真です。
システムを確認してくださいman test
。
答え2
確認してみることを強くお勧めしますこの回答-C -
カールオプションについて。デフォルトではダウンロードを再開します。ファイルがすでに完了している場合は、別のアクションは必要ありません。回復チェックを実行するためにサーバーを呼び出します。