Archiveerders instellen voor gebruik met ondertekenen/versleutelen van bestanden

Kleopatra stelt de systeembeheerder (en grootgebruiker) in staat om de lijst met archiveerders, die gepresenteerd worden in de dialoog voor ondertekenen/versleutelen van bestanden, in te stellen.

Elke archiveerder is gedefinieerd in libkleopatrarc als een aparte Archive Definition #n groep, met de volgende verplichte elementen:

extensies

Een komma-gescheiden lijst met bestandsnaamextensies die gewoonlijk dit formaat archief aangeven.

id

Een unieke ID gebruikt om deze archiveerder intern te identificeren. Bij twijfel gebruikt u de naam van het commando.

Name (vertaald)

De naam van deze archiveerder, zichtbaar voor de gebruiker, zoals getoond in het overeenkomende afrolmenu van de dialoog voor ondertekenen/versleutelen van bestanden.

pack-command

Het actuele commando om bestanden te archiveren. U kunt elk commando gebruiken, als er geen shell nodig is om het uit te voeren. Het programmabestand wordt opgezocht met de omgevingsvariabele PATH, tenzij u een absoluut bestandspad gebruikt. Gebruik van aanhalingstekens is ondersteund alsof een shell wordt gebruikt:

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

Opmerking

Omdat de backslash (\) een escape-teken is in KDE configuratiebestanden, moet u ze verdubbelen wanneer ze in padnamen verschijnen:

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

Voor het commando zelf echter (in tegenstelling tot zijn argumenten), mag u gewoon voorwaartse slashes (/) op alle platforms als padscheidingstekens gebruiken:

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

Dit wordt niet ondersteund in argumenten, omdat de meeste Windows®-programma's de voorwaartse slash voor opties gebruiken. Het volgende zal echter niet werken, omdat C:/myarchivescript.bat een argument voor cmd.exe en / niet in argumenten geconverteerd wordt naar \, alleen commando's:

pack-command=cmd.exe C:/myarchivescript.bat

Dit moet, in plaats hiervan, geschreven worden als:

pack-command=cmd.exe C:\\myarchivescript.bat

Doorgeven van bestandsnamen voor invoer aan pack-command

Er zijn drie manieren om bestandsnamen door te geven aan het commando pack. Voor elk van deze biedt pack-command een specifieke syntaxis:

  1. Als argumenten in de opdrachtregel.

    Voorbeeld (tar):

    pack-command=tar cf -

    Voorbeeld (zip):

    pack-command=zip -r - %f

    In dit geval worden bestandsnamen doorgegeven op de opdrachtregel, net zoals u zou doen bij een prompt. Kleopatra gebruikt geen shell om de opdracht uit te voeren. Daarom is dit een veilige manier om bestandsnamen door te geven, maar op sommige platforms kan dat leiden tot beperkingen van de lengte van deze regel. Een literal %f, indien aanwezig, wordt vervangen door de namen van de te archiveren bestanden. Anders worden bestandsnamen achtergevoegd op de opdrachtregel. Dus kan het voorbeeld van zip hierboven ook geschreven worden als:

    pack-command=zip -r -

  2. Via standaard-invoer, gescheiden door nieuwe-regels: voeg voor |.

    Voorbeeld (GNU-tar):

    pack-command=|gtar cf - -T-

    Voorbeeld (ZIP):

    pack-command=|zip -@ -

    In dit geval worden bestandsnamen doorgegeven naar de archiveringstoepassing via stdin, een per regel. Dit vermijdt problemen op platforms die een lage limiet zetten op het aantal toegestane argumenten op de opdrachtregel, maar mislukt wanneer bestandsnamen, in feite nieuwe-regels bevatten.

    Opmerking

    Kleopatra ondersteunt nu alleen LF als een nieuwe-regel scheidingsteken, niet CRLF. Dit kan wijzigen in toekomstige versies, gebaseerd op terugkoppeling van de gebruiker.

  3. Via standaard-invoer, gescheiden door NUL-bytes: voeg voor 0|.

    Voorbeeld (GNU-tar):

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

    Dit is hetzelfde als boven, behalve dat NUL-bytes worden gebruikt om bestandsnamen te scheiden. Omdat NUL-bytes verboden zijn in bestandsnamen, dit is de meest robuuste manier van het doorgeven van bestandsnamen, maar niet alle archiveringstoepassingen ondersteunen het.