質問: クエリ文字列を含まないようにダウンロードしたファイルの名前をwgetで変更するにはどうすればよいですか? 私はwgetを使用してサイトをダウンロードしており、多くのリンクにクエリが添付されているので、これを行うと次のようになります。wget -nv -c -r -h -a mp3 -nd http://url.to.old.podcasts.com/ 私はこのような多くのファイルになってしまいます:1.mp3?foo=bar 2.mp3?blatz=pow 3.mp3?fizz=buzz 私が最後にしたいのは:1.mp3 2.mp3 3.mp3 これはすべてubuntu linuxで行われており、wget 1.10.2を持っています。すべての名前を変更するスクリプトを使用してすべてを取得した後で、これを実行できることはわかっています。ただし、ダウンロードが行われているときに正しい名前を確認できるように、wget内からの解決策が本当に必要です。誰かがこれを解明するのを手伝ってくれる?
回答: サイトを複製するために作成したこれら2つのコマンドを見てください。複製が完了したら、2番目のコマンドを実行できます。2番目のコマンドは、クローン全体を調べ、「?」ファイルパターン名を検索し、ファイル名からクエリ文字列を削除します。# clone entire site. wget --content-disposition --execute robots=off --recursive --no-parent --continue --no-clobber http://example.com # remove query string from a static resource. for i in `find $1 -type f -name "*\?*"`; do mv $i `echo $i | cut -d? -f1`; done ( github gist で参照してください。)