"wget--restrict-file-names=windows"はNTFSリンクを変換できないようです。

wget--restrict-file-names=windowsダウンロードが完了したら、ダウンロードしたファイルをOracle Ubuntuのインストール済みWindows 7パーティション(より正確にはWindows 7ホストシステムがインストールされているディレクトリ)にコピーできるように、コマンドラインツールを使用してWebからWebサイトをダウンロードしました。 VirtualBoxで実行されているLinuxゲストシステム)。ただし、ディレクトリをマウントしてcpコマンドをコピーすると、次のファイルエラーが発生します。

cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/\321%81ка\321%87а\321%82\321%8C': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/\321%83\321%81\321%82н\321%8Bй-пе\321%80евод': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/заве\321%80ение': Protocol error
cp: cannot create regular file `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/к\321%83\321%80\321%81-англий\321%81кого.1': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/ново\321%81\321%82и': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/к\321%83\321%80\321%81-англий\321%81кого': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/ка\321%80\321%82а-\321%81ай\321%82а': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/подпи\321%88и\321%82е\321%81\321%8C-на-на\321%88\321%83-\321%80а\321%81\321%81\321%8Bлк\321%83': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/category/ново\321%81\321%82и': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/пи\321%81\321%8Cменн\321%8Bй-пе\321%80евод': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/\321%81в\321%8Fзи': Protocol error
cp: cannot create directory `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/\321%83п\321%80авление-подпи\321%81ками': Protocol error

wgetWindows 7 64ビットファイルシステムに正しくコピーできるようにリンクが正しく変換されないのはなぜですかNTFS

編集#1

指摘したように、主な問題はOracle VirtualBoxのインストールソフトウェアのようです。 IMHOはwgetそのレベルでも操作できますが、ファイルを圧縮すると圧縮フォルダをインストールされているcpパーティションにコピーし、コピー7-Zipに失敗したファイル名には、下の画像に示すように、まだ歪んだり読み取れない文字が含まれています(特にほぼ完全に黒い正方形の文字を表す)。

Wgetを使用してWindowsからダウンロードしたファイル名を制限し、Windows Mounted Foldrにコピーしてから7-Zipを使用して解凍します。

ベストアンサー1

これらのメッセージは、インストールに使用した基本ソフトウェアがパラメータのために使用しwget--restrict-file-names=windows特殊文字を処理できないようです。

cp: `/mnt/Desktop/WebSites/foo/www.johndoeandjanedoe.com/ru/\321%81ка\321%87а\321%82\321%8C' ディレクトリを作成できません: プロトコルエラー

wgetマニュアルページによると
--restrict-ファイル名=パターン

ローカルファイル名の作成中にリモートURLにある文字をエスケープする必要がある方法が変更されました。このオプションに限定された文字はエスケープされます。つまり、%HHに置き換えられます。ここで、HHは限られた文字に対応する16進数です。このオプションを使用すると、すべての文字を小文字または大文字に強制することもできます。

...

"windows"が指定されている場合、Wgetは\、|、/、:、?、"、*、<、>文字と0〜31、128〜159の範囲の制御文字をエスケープします。 Windowsモードでは、Wget:代わりに+を使用してローカルファイル名からホストとポートを分離し、Unixモードでxemacs.org:4300 / search.pl?input = blahのクエリ部分を残りのファイル名から分離するには、@の代わりに@を使用します。 www.xemacs.org+4300/search.pl@input=blahとして保存されます。これはWindowsのデフォルトモードです。

これを確認するために、7zディレクトリの圧縮アーカイブを作成し(再帰的に)ファイルをコピーし、Windowsで解凍してみました。

メモ:wgetWindowsで使用するファイルを出力するように指定すると、インストールに使用されるソフトウェアで使用すると、これらの特殊文字に関連する問題が発生する可能性があります。

おすすめ記事