Нужна помощь с xargs и подстановкой

Добро пожаловать в unix.se!

Вы знаете, где начинается ваш раздел ext4. Допустим, это $offset в байтах. Разделите на 512 (при стандартных 512-байтовых секторах ). Теперь у вас есть раздел, начинающийся как сектор. Назовем это $start.
Я также предполагаю, что ваш единственный раздел ext4 не распространяется на самые последние 34 сектора диска (, здесь находится вторичный GPT ).
Пока эти предположения верны, вы можете безопасно перезаписать GPT правильными данными.

Вы можете использовать gdiskи ввести
oдля создания новой пустой таблицы разделов GUID,
nдля добавления нового раздела,
1первый (и единственный )раздел,
$startрассчитанное ранее начало (в секторах, 2048 по умолчанию кстати ),
(пустая строка )для установки конца раздела на конец диска (подкорректировать по необходимости ),
принять файл -тип системы 0x8300 "Linux",
wдля записи и выхода.

Удачи.

0
28.05.2021, 06:51
1 ответ

Напишите еще один простой скрипт для получения желаемого вывода и запустите его из findс помощью -exec, не нужно xargs. Например:

find. -maxdepth 1 -type f -wholename "$1" -exec /path/to/myscript.sh {} +

myscript.sh:

#!/bin/sh

for i in "$@"; do
  printf "<h2>Filename: %s</h2>\n<pre>" "$i"
  cat *
  printf "\n<pre>\n<br>Word Count %s\n" "$(wc -w "$i")"
done

Сохраните это и сделайте исполняемым, запустив chmod +x myscript.sh.

Я не знаю, зачем вам нужно запускать cat *(, т. е. проверять все файлы в текущем каталоге )для каждого найденного файла, но это то, о чем вы просили. Вы уверены, что вам не нужно содержимое каждого файла? Используйте cat "$i"вместо cat *.

Кроме того, вы можете сделать это без дополнительного скрипта, используя вместо него -exec sh -c...:

find. -maxdepth 1 -type f -wholename "$1" \
  -exec sh -c 'for i in "$@"; do
          printf "<h2>Filename: %s</h2>\n<pre>" "$i";
          cat "$i";
          printf "\n<pre>\n<br>Word Count %s\n" "$(wc -w "$i")";
        done' find-sh {} +

(добавлены дополнительные новые строки для улучшения читабельности. скрипт работает одинаково как с ними, так и без них.)

Кстати, если вам нужно выполнить скрипт, использующий только функции bash -, используйте -exec bash -c...вместо -exec sh -c....

2
28.07.2021, 11:28

Теги

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