Исходное имя файла при декодировании – как сохранить?


GPG используется в автоматическом декодировании поступающих файлов. Иногда зашифрованные файлы дополнительно "шифруются": переименовываются в что-то нейтральное типа file.txt.
Поставлена задача восстанавливать имя исходного файла при декодировании.

  1. Найдена опция --use-embedded-filename, но не ясно, как ей пользоваться, т.к. используется опция --output.
  2. Если решить п 1., то как избежать потери данных при возможном совпадении имен? Приходит на ум: сохранить в отдельной директории, прочитать имя, проверить на совпадение в целевой директории...


Комментарии
— SATtva (15/10/2006 17:04)   
Какая версия GnuPG? Используется он как часть внешнего скрипта/программы или индивидуально? Что ещё за опция --output?
Гость (15/10/2006 22:59)   
версия самая свежая 1,4,5
используется в скрипте
-о в какой файл сохранять
— unknown (16/10/2006 13:03, исправлен 16/10/2006 13:04)   


Неважно под какой ОС, но почему бы не использовать простейший архиватор перед шифрованием в том же скрипте, который бы сохранял имя, права доступа и т.д.?
Гость (16/10/2006 23:41)   
теоретически – да
но на практике это компромиссный ход. Архиватор явно избыточен, так как передается один файл, перед кодированием он сжимается, исходное имя файла хранится. Только вот как его достать?
Приведите, пожалуйста, пример декодирования с использованием опции --use-embedded-filename
Гость (16/10/2006 23:44)   
с сохранением в указаной директории
— unknown (17/10/2006 09:00, исправлен 17/10/2006 09:01)   
теоретически – да
но на практике это компромиссный ход.

Я сталкивался на практике, что так все бэкапы файлов обычно и хранятся.

Архиватор явно избыточен, так как передается один файл, перед кодированием он сжимается, исходное имя файла хранится.

В unix системах архиваторы (tar, cpio) только архивируют – собирают список файлов или файл внутрь одного файла архива, а сжимают другие программы, например gzip или bzip2. Если их не использовать, то и сжатия никакого не будет.

исходное имя файла хранится. Только вот как его достать?



Разве нельзя нечто похожее организовать под Win? Может быть кто-то, кто пользуется именно опцией --use-embedded-filename скажет Вам про неё подробнее, но я бы попробывал архиваторы (разумеется не громоздкие коммерческие rar или даже zip), а настоящие архиваторы.
— SpiderMike (20/08/2007 09:26)   
Очень жаль, что никто так и не привел пример декодирования с использованием опции --use-embedded-filename.
— spinore (20/08/2007 09:44, исправлен 20/08/2007 09:45)   
Что ещё за опция --output?

--output file

-o file

Write output to file.
© man gpg.
Сразу видно, кто какие программы использует :)
— SATtva (20/08/2007 10:43)   
Тогда вроде бы стояла версия 1.4.6, и прежде чем задать вопрос, проверил наличие опции в man'е. Не было там output'а. Может искал криво, но это вряд ли.
— spinore (20/08/2007 11:04)   
Не помню, я gpg недавно обновлял из-за узявимости. Мне кажется что и в 1.4.6 была. Врать не буду.
— SATtva (20/08/2007 14:23)   
Самой опции сто лет в обед (на момент написания того постинга просто о ней забыл), но в прошлой версии программы о ней не было упоминания в man'е. Не исключаю, что это могла быть моя ошибка, но могла быть и ошибка в руководстве.
— Kent (20/08/2007 14:24)   
Опция --output была ещё в версии 1.2.х. И, наверняка, раньше.
— Kent (20/08/2007 14:27)   
И в man тоже была.
Гость (20/08/2007 15:14)   
Найдена опция use-embedded-filename, но не ясно, как ей пользоваться, т.к. используется опция output.

Очень жаль, что никто так и не привел пример декодирования с использованием опции use-embedded-filename

Честно говоря, не понял, в чем проблема.

Получаю расшифрованый my_secret_namedfie_file.txt (с правильным именем). Проверил в GnuPG v1.4.7 под WinXP.
Странная особенность (похоже глюк) если при расшифровке использовать --batch, то в случае наличия файла с таким именем gpg отрапортует, что все OK, но файл не перепишет, а с --yes переписывает. По-хорошему, с --batch он должен вываливатьс я в failed: file exists с соответствующим кодом ошибки.