Найти все файлы и использовать результат в шаблоне поиска grep

Из-за ошибки либо в способе установки моей живой системы, либо в том, как live-tools обрабатывает смонтированный раздел, live-update-initramfs не работает в этом конкретном случае, так как он смотрит на /lib/live/mount/medium/ как на корень живого USB-устройства, хотя это не была точка монтирования (и нужно 3 раздела из USB-устройство).

Вместо того, чтобы возиться с монтированием/размонтированием и т. д., я смог просто создать файл initrd.img (он отсутствовал) с помощью update-initramfs и вручную переместить его в папку live из моего неживого дистрибутива linux:

/usr/sbin/update-initramfs.orig.initramfs-tools -c -k 4.9.0-kali4-amd64

Это создает изображение. vmlinuz-4.9.0-kali4-amd64 уже был доступен. Из моего неживого дистрибутива с вставленным USB-накопителем:

  1. Сначала я переместил файлы initrd.img и vmlinuz из папки /live на моем USB-накопителе на рабочий стол (для резервного копирования).
  2. Затем я скопировал файлы initrd.img-4.9.0-kali4-amd64 и vmlinuz из корневой папки USB-накопителя в папку /live.
  3. Я переименовал их в initrd.img и vmlinuz и перезагрузился. Voilà

- Большое спасибо Джеффу С. за ваш вклад.

0
24.05.2017, 17:05
2 ответа

Предполагая, что GNU grep и ваши имена файлов не содержат встроенных символов новой строки:

find . -name '*.cgi' -printf '%f\n' | cut -d. -f1 | sort -u | fgrep -f - *.html
3
28.01.2020, 02:16

Вам не нужно xargs здесь, вы можете просто grep прочитать список шаблонов со стандартного ввода:

с помощью GNU find:

find . -name '*cgi' -printf '%f\n' | grep -f - *html

иначе:

find . -name '*cgi' | cut -f2- -d/ | grep -f - *html
2
28.01.2020, 02:16

Теги

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