ファイルがローカルにすでに存在する場合は、カールを使用してファイルをダウンロードしないでください。

ファイルがローカルにすでに存在する場合は、カールを使用してファイルをダウンロードしないでください。

私は現在カールを使ってこれをやっています。

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 -カールオプションについて。デフォルトではダウンロードを再開します。ファイルがすでに完了している場合は、別のアクションは必要ありません。回復チェックを実行するためにサーバーを呼び出します。

関連情報