Проблема с установкой CentOS 6.4 (вторая) после этого Win7 (первая) - двойная загрузка

У многих, включая меня, были проблемы с пониманием того, как использовать -X, и ответ было трудно запомнить (между годами перерыва между использованием).

Трудно запомнить трюк, запишите его :)

$ wget -X fo*o ... # does not work for directories
$ wget -X */fo*o,*/*/fo*o,*/*/*/fo*o ... # works for directories
$ wget -X \*/fo\*o/,\*/\*/fo\*o/,\*/\*/\*/fo\*o/ ...

ОТВЕТ:

взломать сайт wget -? / Src / utils.c, чтобы использовать базовое имя вместо текущего пути, также в командной строке используйте шаблон имени файла (просто «fo * o», больше ничего). и обратите внимание, что для параметра FNM_PATHNAME установлено значение 0 (в противном случае он требует '/' для завершения хвоста совпадения). следующий патч против wget-1.12 есть более простой способ, определив? FNM_FLAGS, но это работает "нормально".

--- utils.c.old 2016-09-13 07:49:11.000000000 -0400
+++ utils.c 2016-09-13 09:32:58.000000000 -0400
@@ -907,6 +907,9 @@
   return *d1 == '\0' && (*d2 == '\0' || *d2 == '/');
 }

+/* for basename */
+#include <libgen.h>
+
 /* Iterate through DIRLIST (which must be NULL-terminated), and return the
    first element that matches DIR, through wildcards or front comparison (as
    appropriate).  */
@@ -921,18 +924,24 @@
     {
       /* Remove leading '/' */
       char *p = *x + (**x == '/');
+      /* SITE HACK - only if patterned ignore leading dirs cmp as file */
+      char sh_str[1024*16], *pp;
+      strcpy(sh_str,basename(dir));
+      pp=sh_str;
+#if 0
+      printf("? %s == %s ?\n",p,pp); 
+#endif
       if (has_wildcards_p (p))
         {
-          if (matcher (p, dir, FNM_PATHNAME) == 0)
+          if (matcher (p, pp, 0) == 0)
             break;
         }
       else
         {
-          if (subdir_p (p, dir))
+          if (subdir_p (p, pp))
             break;
         }
     }
-
   return *x ? true : false;
 }
3
27.04.2016, 20:43
0 ответов

Теги

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