Configurar os Arquivadores a Usar ao Assinar/Encriptar os Ficheiros

O Kleopatra permite ao administrador (e aos utilizadores especializados) configurar a lista de arquivadores que estão presentes na janela para Assinar/Encriptar os Ficheiros.

Cada arquivador está definido no libkleopatrarc como um grupo Archive Definition #n separado, com as seguintes chaves obrigatórias:

extensions

Uma lista, separa por vírgulas, das extensões de ficheiros que indicam normalmente este formato de arquivo.

id

Um ID único que é usado para identificar este arquivador internamente. Em caso de dúvida, use o nome do comando.

Name (traduzido)

O nome visível para o utilizador do arquivador, tal como aparece na lista correspondente na janela para Assinar/Encriptar os Ficheiros.

pack-command

O comando real usado para arquivar os ficheiros. Poderá usar qualquer comando, desde que não seja necessária qualquer linha de comandos para o executar. O programa é pesquisado com a variável de ambiente PATH, a menos que tenha usado uma localização absoluta para o ficheiro. Existe o suporte para aspas, caso tenha sido utilizada uma linha de comandos:

pack-command="/opt/ZIP v2.32/bin/zip" -r -

Nota

Dado que a barra invertida (\) é um carácter de escape nos ficheiros de configuração do KDE, terá de os duplicar quando aparecerem nos nomes dos ficheiros:

pack-command=C:\\Programas\\GNU\\tar\\gtar.exe ...

Contudo, para o comando em si (em oposição aos seus argumentos), poderá apenas usar as barras normais (/) como separadores entre pastas para todas as plataformas:

pack-command=C:/Programas/GNU/tar/gtar.exe ...

Isto não é suportado nos argumentos, porque a maioria dos programas do Windows® usam as barras normais para as opções. Por exemplo, o seguinte não irá funcionar, dado que o C:/programa-arquivo.bat é um argumento do cmd.exe, e o / não será assim convertido para \ nos argumentos, somente nos comandos:

pack-command=cmd.exe C:/programa-arquivo.bat

Este comando deverá sim ser descrito como:

pack-command=cmd.exe C:\\programa-arquivo.bat

Passagem do Ficheiro de Entrada ao pack-command

Existem três formas de passar os nomes dos ficheiros ao comando de arquivo. Para cada uma delas, o pack-command oferece uma sintaxe em particular:

  1. Como argumentos da linha de comandos.

    Exemplo (tar):

    pack-command=tar cf -

    Exemplo (zip):

    pack-command=zip -r - %f

    Nesse caso, os nomes dos ficheiros são passados na linha de comandos, tal como faria ao usar a linha de comandos. O Kleopatra não usa nenhuma linha de comandos para executar o comando. Como tal, esta é uma forma segura de passar os nomes dos ficheiros, mas, se bem que poderá ter algumas restrições quanto ao tamanho da linha de comandos em algumas plataformas. Um %f literal, se estiver presente, será substituído pelos nomes dos ficheiros a arquivar. Caso contrário, os nomes dos ficheiros serão adicionados à linha de comandos. Como tal, o exemplo para o ZIP, acima descrito, seria escrito de forma equivalente da seguinte forma:

    pack-command=zip -r -

  2. Através do 'standard-in' (STDIN), separado por mudanças de linha: coloque antes um |.

    Exemplo ('tar' da GNU):

    pack-command=|gtar cf - -T-

    Exemplo (ZIP):

    pack-command=|zip -@ -

    Neste caso, os nomes dos ficheiros são passados ao programa de arquivo pelo stdin, um por cada linha. Isto evita os problemas nas plataformas que colocam um limite baixo no número de argumentos permitido pela linha de comandos, mas não resulta quando os nomes dos ficheiros contêm de facto mudanças de linha nos seus nomes.

    Nota

    O Kleopatra só suporta de momento o LF como separador de linhas, não suportando o CRLF. Isto poderá mudar nas próximas versões, dependendo das reacções do utilizador.

  3. Através do 'standard-in', separado por 'bytes' NUL: coloque anteriormente 0|.

    Exemplo ('tar' da GNU):

    pack-command=0|gtar cf - -T- --null

    Este é igual ao anterior, com a diferença que são usados 'bytes' NUL (vazios) para separar os nomes dos ficheiros. Dado que os 'bytes' NUL são proibidos nos nomes dos ficheiros, esta é a forma mais robusta de passar nomes de ficheiros, só que infelizmente nem todos os programas a suportam.