wget
コマンドを使用して clojuredocs のローカルバージョンを保存しようとしています:
wget --user-agent=firefox --ignore-length -c -km
"http://clojuredocs.org/quickref/Clojure Core"`
ただし、 http://clojuredocs.org/clojure_core/clojure.core/rem のようなリンクに到達すると、no such file or directory
を取得し続けます。これは、ブラウザーでアクセスできるため、明らかに存在します。これは、wget
がパスを構築/連結する方法の問題だと思います。 これをどのように修正しますか?。 --user-agent
や--ignore-length
などの他のオプションを試しましたが、以下のように同じ結果が得られます(メッセージを正しく表示するには、画像を開く必要があります)。
次のコマンドがあるため、これはミラーリングの問題のようです。
wget http://clojuredocs.org/clojure_core/clojure.core/rem
大丈夫です。
問題は、URL http://clojuredocs.org/clojure_core
を./clojuredocs.org/clojure_core
という名前のファイルに保存するwget
の動作に起因しますが、URL http://clojuredocs.org/clojure_core/
(末尾のスラッシュに注意)は./clojuredocs.org/clojure_core/index.html
という名前のファイルに保存します。 。
file./clojuredocs.org/clojure_core
が作成されたら、たとえば次のダウンロードを行います。 wget
はディレクトリhttp://clojuredocs.org/clojure_core/something
を作成できなくなったため、./clojuredocs.org/clojure_core
は失敗する運命にあります。
これは、GNU Wget Bugtrackerのバグ #29647 として報告されました。
提供された パッチ (明らかに公式のソースコードにはなりませんでした)を使用すると、この問題はなくなり、wget
は最初にディレクトリを作成するように強制されます。したがって、ダウンロードを続行できます。
ただし、http://clojuredocs.org/clojure_core
は./clojuredocs.org/clojure_core.1
としてではなく./clojuredocs.org/clojure_core/index.html
として保存されます。
リンクコンバーター(-k
)が、このミラーリングされたローカルコピーのリンクを機能させるのに十分スマートであるかどうかを判断できません...数分後にダウンロードを停止しました。 (私は焦りすぎです;)
)