質問: wget -oは、失敗時に空のファイルを書き込みます wget "no such address" -o "test.html"と書くと、最初にtest.htmlが作成され、失敗した場合は空のままになります。ただし、-oを使用しない場合は、ダウンロードが成功するかどうかを確認してから、ファイルが書き込まれます。後者の動作を-oにも適用したいのですが、可能ですか?
回答: wgetは、urlが見つからない場合にゼロ以外の終了ステータスを返すため、失敗したときにremoveコマンドを追加できます。wget "url" -o file || rm -f file または、一時ファイルを作成して、成功したい場所にのみ移動します。wget "url" -o /tmp/wget && mv /tmp/wget file 2番目の方法には、失敗時に既存のファイルを削除しないという利点がありますが、必ず一意の一時的な名前を使用してください(man tempfile)複数のインスタンスを並行して実行している場合。