2017-07-19 7 views
1

wgetを-O/- 出力ドキュメントオプションと一緒に使用したいと思います。ファイル名)と--backupsオプション(指定されたバックアップ数の間で回転する)を指定します。wgetを-O出力ドキュメントと--backupsオプションの両方で使用する(動作していないようです)

簡単なテスト・ケース:

wget http://google.com -O myfile --backups=7

は、バックアップ動作をテストするために、少なくとも二回実行する必要があります。 予想される動作:2回実行した後、出力ディレクトリに異なるタイムスタンプを持つmyfile.1myfileの両方が表示されます。

実際の動作:myfileを上書きするだけで、myfile.1は作成されません。 --backupsオプションのドキュメントによると

: (https://www.gnu.org/software/wget/manual/wget.html)、

は(以上)のファイルを書き込み、バックアップ

前に '=バックアップ--backups'既存のファイルにファイル名に '.1'接尾辞(VMSでは '_1')を追加します。このようなバックアップファイルは、 '.2'、 '.3'などのようにバックアップまでバックアップされます(それを超えて失われます)。

既存のファイルを最初にバックアップしないで上書きしないでください。このオプションまたは-O/- output-documentオプションでは、一緒に使用しないでください。

これは間違いありませんか?何か不足していますか?これはバグですか?

私はそれを読み-O/--output-documentセクションの下にあることがわかります。「-O」の

使用は単に「URL内の1つの代わりに名前のファイルを使用します。」を意味することが意図されていないことが、むしろ、シェルリダイレクトに似ています。 'wget -O file http://foo'は 'wget -O- http://foo> file'のように動作します。ファイルはすぐに切り捨てられ、ダウンロードされたすべてのコンテンツがそこに書き込まれます。それはまだ便利な機能になるので、単一のファイルにすべての出力を連結した場合にも

それでも、私は、--backupsが動作してはならないことを意味することを取ることはありません。

これを行う別の方法はありますか? (私は私自身のバックアップローテーションスクリプトを書くことができると思うが、それは痛みであり、できるだけ事前に作られたものを探している)

ありがとう。

答えて

0

私が使用していた回避策は使用しないでください。-O;代わりに、デフォルトのファイル名(多くの場合、[email protected]=valueなど)の出力を保存してから、 wgetがダウンロードした後にそのファイルを目的の宛先にコピーします(バックアップの回転も行います)。

例:私の経験で

#!/bin/bash 

# The --restrict-file-names=windows parameter makes the file names wget saves to 
# more predictable and the same on both unix-like & windows hosts, so that our 
# scripts will work both places. In windows filename mode, '?' in filenames are 
# converted to '@'. 
wget --backups=7 http://example.com/?param=xyz123 --restrict-file-names=windows 

# Manually copy files to expected names after download so --backups option will work. 
# (--backups option doesn't work in combination with -O/--output-file as of wget 1.19.1) 
dest_filename="myfile.zip" 
cp -a "[email protected]=xyz123" ${dest_filename} 

、上記のようにwgetの呼び出しは[email protected]=xxxのようなファイル名になってしまった...あなたの走行距離は変更になる場合があります。 wgetを実行し、生成された出力ファイル名を見るだけで、目的のファイル名が何であるかを確認するのは簡単です。

出力ファイル名が予測しにくい派手なアプリケーションは、おそらくファイル名グロブや検索コマンドなどを使って処理できます。

関連する問題