< list.txt xargs -r sh -fc '
mkdir -p "$@"
cmd="find /usr/share/exploitdb -name ${1%%_*}.* -exec cp -vt $1/. {} +"; shift
for d; do cmd="${cmd} -o -name ${d%%_*}.* -exec cp -vt $d/. {} +"; done
$cmd
' sh
Работа:
list.txt
, который передается в xargs
, который, в свою очередь, передает их sh
в slurp-mode в его списке аргументов. Теперь мы динамически
строим команду find
на основе переданных нам данных таким образом, что все файлы с общим именем извлекаются сразу, а затем cp
сразу в соответствующий каталог. Это помогает свести вызовы find
к минимуму. Например, вот как будет выглядеть команда find
для набора данных, показанного OP
:
find / usr / shar / exploitdb -name 271. * -exec cp -vt 271_Lsasrv_dll_MS04-011 /. {} + -o -name 350. * -exec cp -vt 350_Util_Manager_MS04-019 /. {} + -o -name 351. * -exec cp -vt 351_POSIX_MS04-020 /. {} +
Предполагается, что каталог не содержит пробелов и метасимволов оболочки.
если новое ядро имеет такое же имя, посмотрите, поможет ли "отключение подписи модулей в ядре" КОНФИГУРАЦИЯ _МОДУЛЬ _SIG
CONFIG_MODULE_SIG:
Check modules for valid signatures upon load: the signature is simply appended to the module. For more information see Documentation/module-signing.txt.
Я также нашел это, но не знаю, поможет ли это:
CONFIG_MODVERSIONS:
Usually, you have to use modules compiled with your kernel. Saying Y here makes it sometimes possible to use modules compiled for different kernels, by adding enough information to the modules to (hopefully) spot any changes which would make them incompatible with the kernel you are running. If unsure, say N.