wgetがファイルを上書きできるようにする方法


9

wgetコマンドを使用して、起動回数に関係なく、ローカルファイルを毎回上書き/許可する方法を教えてください。

たとえば、http://server/folder/file1.htmlの場所からファイルをダウンロードするとします

ここで、と言うときはいつでもwget http://server/folder/file1.htmlfile1.html変更された時間やダウンロード済みの時間などに関係なく、ローカルシステムでこれを上書きします。ここでの意図/使用例は、wgetを呼び出したときに、既存のファイルを置換/上書きします。

以下のオプションを試してみましたが、各オプションは他の目的のために意図された/意味があります。

  1. -nc => --no-clobber
  2. -N =>タイムスタンプをオンにする
  3. -r =>再帰的な取得をオンにします

回答:


7
wget -q http://www.whatever.com/filename.txt -O /path/filename.txt 

-qはクワイエットモードであるため、コマンドからの出力なしでcronにスローできます。


wgetを使用して明示的に指定せずにこれを行うコマンドに直接オプションはありません-O filename
Gnanam 2010

3
wgetを使用してファイルをダウンロードするときに、すべてのファイルを強制的に上書きする方法はないようです。ただし、-Nオプションを使用すると、新しいファイルを確実にダウンロードして上書きできます。wget -Nサイズまたはタイムスタンプが変更された場合、元のファイルを上書きします
aleroot

違います。コマンドの出力をstdoutに送り、ファイルにパイプします。wget -q $ urlYouNeedToGrap> $ fileYouWantToOverwriteEverytime
rasjani


4

curl代わりに使用しますか?

curl http://server/folder/file1.html > file1.html

私はLinuxの専門家ではありません。基本的な違いは何ですかwgetとはcurl?各コマンドは特定の目的のためのものであることは確かです。
Gnanam 2010

1
@Gnanam:実際には、基本的なCLIユーティリティで多く重複しています。どちらもHTTP接続を確立し、結果をディスクに保存できます。違いの詳細については、daniel.haxx.se / docs / curl-vs-wget.htmlを確認してください。 いずれにせよ、上記の使用法は完全に有効です。この一般的な領域には他のツールもあります:curl.haxx.se/docs/comparison-table.html
Stu Thompson

これらの2つのリンクは、違いを理解するのに非常に役立ちます。
Gnanam 2010

0

ディレクトリもダウンロードしない限り、そうすることはできないと思います(-xフラグを渡してください)。ファイルがわかっている場合は、-O filenameを使用できます。たとえば、次のようにします。
wget http://yourdomain.com/index.html -O index.html


0

未試用:で作業できるかもしれませんwget -r --level=0

別の可能性:curl -O上書き(ただし、ファイル名の選択に別の方法を使用しますが、これは重要かどうかは関係ありません)。


このwget行はサブディレクトリの階層を作成するため、実際には正しく動作しません。curl -O一方、ファイルを正しくダウンロードし、既存のコピーを上書きします。
2013

0

スクリプトのwgetの周りに小さなラッパーを入れてみませんか?

スクリプトは、すべてのファイルを一時的な場所に移動してから、リモートファイル/ Webページを取得できます。

成功したら、一時的な場所にあるファイルを削除します。失敗した場合はファイルを元に戻し、エラーを発生させます。

すべてのファイルの名前が明確にわからない場合を除いて、wgetだけを使用して目的の操作を行う簡単な方法はありません。その場合、-Oオプションを使用すると、ダウンロードするファイルのファイル名を強制できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.