GNU/Linux >> Znalost Linux >  >> Linux

Mohu uložit unixová oprávnění do souboru zip (vytvořeného pomocí Apache ant)?

Chcete-li rozšířit Blaineovu odpověď, můžete k určení oprávnění použít podřízené prvky :

<zip destfile="build/MyApplication.zip" encoding="UTF-8">

    <zipfileset dir="${content-dir}" encoding="UTF-8"
        includes="**/setup.sh" filemode="755"/>

    <zipfileset dir="${content-dir}" encoding="UTF-8"
        excludes="**/setup.sh"/>

</zip>

Do souboru ZIP nemůžete uložit oprávnění k souboru Linux/Unix.

Upravit (po komentářích) pomocí pole "externí atributy" v záhlaví ZIP lze tyto atributy uložit do souboru ZIP. GNU unzip je zjevně schopen číst toto další pole a obnovit oprávnění souboru.

Formát TAR – je to „nativní“ formát Unix/Linux – byl navržen tak, aby zahrnoval atributy souborů a Ant může vytvářet soubory TAR, které zachovají atributy ve všech operačních systémech Linux/Unix.

<tar compression="gzip" destfile="my-archive.tgz">
  <tarfileset mode="544" dir="dir_with_shell_scripts">
     <include name="*.sh"/>
  </tarfileset>
</tar>

Myslím, že to můžete udělat s Apache Commons Compress.

První odstavec:

Přístup k interním a externím atributům (které některé implementace zipu používají k ukládání oprávnění Unix).

Podívejte se na API a vyhledejte setUnixMode()


Nemusíte přepínat na soubory tar. Nevím, proč lidé, kteří Ant neznají, nabízejí rady na toto téma.

Použijte parametr filemode souboru zipfileset. Dokumentováno na http://ant.apache.org/manual/Types/zipfileset.html


Linux
  1. Jak můžeme uložit jiné heslo než prostý text?

  2. Zachování oprávnění k souboru s Git

  3. Přístupový protokol Apache automaticky nastavuje oprávnění

  1. Na Linuxu/Unixu záleží na .tar.gz versus .zip?

  2. oprávnění k souboru v zip/7z/rar?

  3. Soubory ZIP se v Linuxu rozšiřují zpětnými lomítky, žádné podadresáře

  1. Linux – Rozumíte unixovým oprávněním a typům souborů?

  2. Jak povolit oprávnění k souborům Unix na sdílení Samba s Smb 2.0+?

  3. Oprávnění souborů v Linuxu s příkladem