Опция wget -nd (--no-directoryies) не работает должным образом

479
Baruch

Я использую wget1.12 (в msys, если это имеет значение) и пытаюсь отразить веб-сайт с -ndопцией, так как имена файлов и папок на этом сайте очень длинные. Документы утверждают, что

‘-nd’ ‘--no-directories’ Do not create a hierarchy of directories when retrieving recursively. With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the filenames will get extensions ‘.n’). 

Однако, это не так. Файлы с одинаковыми именами продолжают перезаписываться (например, index.html на большом сайте). Как я могу получить правильное поведение?

PS Причина, по которой имена настолько длинные, заключается в том, что они на иврите и переводятся в ascii% HH. Есть ли другой способ сделать это?

2
У меня 1.11.4. Я думаю, что получил его от gnuwin32. Я не слышал о msys, похоже, он похож. gnuwin32 более известен, вы можете попробовать gnuwin32 Но у вас есть пример сайта с проблемой? barlop 12 лет назад 0
из интереса это превращает его в различные символы или просто квадраты? Я нахожу, что я просто получаю квадратные символы ... для командной строки cygwin есть хороший графический интерфейс, который показывает любой символ Юникода ... может быть, мятный ... не уверен, что cmd.exe barlop 12 лет назад 0
если вы можете включить строку, которую вы используете, и, естественно, сайт или сайт с проблемой, то это поможет. barlop 12 лет назад 0
Первоначально я проголосовал за это преждевременно, думая, что это стоящий вопрос, но поскольку он действительно вернулся и до сих пор не предоставил ссылку или ссылку на другой сайт с проблемой, это просто неприятность. Если бы я знал, я бы не проголосовал за него, так что было бы ноль, если бы ему повезло, и если бы я проголосовал за него, этот вопрос был бы на -1, чего он почти и возможно делает, заслуживает. Конечно, не заслуживает моего возражения, это точно. Я просто не могу отменить это barlop 12 лет назад 0
Возможно, это ограничение вашей файловой системы? Вы используете NTFS или FAT? Что если вы выполните тестовый запуск для некоторых файлов, в которых нет точек, так что добавленный .n добавляет единственную точку? Flimzy 12 лет назад 0

1 ответ на вопрос

0
danadam

Очень возможно, что вы также использовали -N( --timestamping), что подразумевается -m( --mirror), например. Это эффективно отключает сохранение файлов с одинаковыми именами. Инструкция для опции -nc( --no-clobber) гласит:

При запуске Wget с ключом -N ... решение о том, загружать или нет более новую копию файла, зависит от локальной и удаленной метки времени и размера файла.

Обычно, если есть 2 файла с одинаковым именем и разным путем (например, index.html), они будут иметь разные размеры и из-за того, как работает временная метка, файл всегда будет перезаписан, если используется с -ndопцией.

Вы можете прочитать больше в документации для отметки времени .

Похожие вопросы