Вы можете использовать простую программу C для чтения из stdin
, записи в stdout
и выхода, фактически не дожидаясь EOF
, и использовать его как промежуточное звено в трубопроводной цепи.
Вот простой пример:
main.c
#include <stdio.h>
#include <unistd.h>
#define BUFFER_SIZE 1024
int main(int argc, char **argv){
char buffer[BUFFER_SIZE];
ssize_t read_size;
//Read up to BUFFER_SIZE bytes of what's currently at the stdin
read_size = read(STDIN_FILENO, buffer, BUFFER_SIZE);
if(read_size > 0){
write(STDOUT_FILENO, buffer, read_size);
}
return 0;
}
Скомпилируйте эту программу, используя gcc -o test main.c
.
Затем, если вы запустите {echo a; спать 2 секунды; эхо б; } | {спит 1 сек; ./тестовое задание; } | {./mycommand; }
, mycommand
получит только a
, поскольку это был единственный символ в stdin
при чтении ./ test
от него.
Чтобы проверить это, вы можете запустить {echo a; спать 2 секунды; эхо б; } | {спит 1 сек; ./тестовое задание; } | cat
, при котором на экране будет отображаться только a
.
GnuPG 1.4, 2.0 и 2.1 поддерживают "старый добрый" файл pubring.gpg
для хранения открытых ключей. Пока pubkey.gpg
существует, GnuPG 2.1 также будет продолжать использовать его и не будет создавать набор открытых ключей в новом формате keybox.
Однако существуют различия в отношении закрытых ключей. В то время как GnuPG 1.4 и 2.0 хранят закрытые ключи в файле secring.gpg
, GnuPG 2.1 объединяет их в открытый файл набора ключей, так что GnuPG 2.1 (gpg2
в более новых дистрибутивах также gpg
) и GnuPG 1.4 (gpg1
, если доступно, в более старых дистрибутивах также gpg
) больше не используют общее хранилище набора секретных ключей (но, как уже объяснялось, могут использоваться для общего набора ключей).
Если вы экспортируете секретные ключи из gpg2
и импортируете их в gpg
/gpg1
, вы сможете использовать их в обеих реализациях. GnuPG 1.4 не возражает против того, чтобы секретные ключи хранились в вашем файле pubring.gpg
. Имейте в виду, что GnuPG 1.4 не может объединять пакеты секретных ключей; если вы измените свои подразделы в GnupG 2.1 и захотите скопировать их в GnuPG 1.4 в прошлом, вам придется удалить секретный ключ из GnuPG 2.1 и снова импортировать его. Всегда делайте резервную копию перед тем, как что-то менять!