gpg --list-sigs | sed -rn '/User ID not found/s/^sig.+([a-FA-F0-9]{8}).*/\1/p' | xargs -i_ gpg --keyserver-options no-auto-key-retrieve --recv-keys _
Команда gpg --list-sigs
выводит список всех имеющихся в вашем ключевом кольце GPG-ключей и информацию о них.
Команда sed -rn '/User ID not found/s/^sig.+([a-FA-F0-9]{8}).*/\1/p'
используется для фильтрации вывода предыдущей команды. Она ищет строки с текстом «User ID not found», затем выделяет из каждой такой строки последовательность из 8 символов, которая идет после «sig», и выводит их.
Конвейер |
передает вывод предыдущей команды на вход следующей команде.
Команда xargs -i_ gpg --keyserver-options no-auto-key-retrieve --recv-keys _
используется для получения отсутствующих GPG-ключей. Она принимает все выходные значения предыдущей команды, заменяет пропуском символ _
и передает их в качестве аргументов команде gpg --recv-keys
. Опция --keyserver-options no-auto-key-retrieve
предотвращает автоматическое получение ключей с сервера по умолчанию.
Эта команда полезна, когда у вас отсутствуют некоторые GPG-ключи в ключевом кольце и вы хотите получить их с сервера ключей. Если известны отсутствующие ключи, вы также можете использовать команду gpg --recv-keys
, чтобы получить их явно, без использования конвейера.