wget
コマンドを使用して、起動回数に関係なく、ローカルファイルを毎回上書きまたは許可する方法を教えてください。
次の場所からファイルをダウンロードしたいとしましょう: http://server/folder/file1.html
ここで、私がwget http://server/folder/file1.html
、 これ欲しい file1.html
変更された時間、既にダウンロードされた時間などに関係なく、ローカルシステムで上書きされます。ここでの目的は、wgetを呼び出すときに、既存のファイルを置き換えたり上書きしたりすることを確信していることです。 。
以下のオプションを試してみましたが、各オプションは他の目的のために意図された/意味があります。
wget -q http://www.whatever.com/filename.txt -O /path/filename.txt
-qはクワイエットモードであるため、コマンドからの出力なしでcronにスローできます。
このオプションは機能します
wget -N http://server/folder/file1.html
情報
-N, --timestamping don't re-retrieve files unless newer than
local.
代わりにcurl
を使用しますか?
curl http://server/folder/file1.html > file1.html
ディレクトリもダウンロードしない限り、そうすることはできないと思います(-xフラグを渡してください)。ファイルがわかっている場合は、-O filenameを使用できます。たとえば、次のようにします。wget http://yourdomain.com/index.html -O index.html
未試用:wget -r --level=0
。
別の可能性:curl -O
上書きします(ただし、ファイル名の選択には別の方法が使用されますが、これは重要ではない場合もあります)。
スクリプトのwgetの周りに小さなラッパーを付けてみませんか?
スクリプトは、すべてのファイルを一時的な場所に移動してから、リモートファイル/ Webページを取得できます。
成功したら、一時的な場所にあるファイルを削除します。失敗した場合はファイルを元に戻し、エラーを発生させます。
すべてのファイルの名前を明確に知らない限り、wgetだけを使用して目的の操作を行う簡単な方法はありません。その場合、-Oオプションを使用すると、ダウンロードしたファイルのファイル名を強制できます。