GNU/Linux >> Belajar Linux >  >> Linux

Bisakah saya menyimpan izin unix dalam file zip (dibuat dengan apache ant)?

Untuk memperluas jawaban Blaine, Anda dapat menggunakan elemen turunan untuk menentukan izin:

<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>

Anda tidak dapat menyimpan izin file Linux/Unix dalam file ZIP.

Edit (setelah komentar) dengan menggunakan bidang "atribut eksternal" di dalam header ZIP, atribut ini dapat disimpan di dalam file ZIP. unzip GNU tampaknya dapat membaca bidang tambahan itu dan memulihkan izin file.

Format TAR - sebagai format Unix/Linux "asli" - telah dirancang untuk menyertakan atribut file dan Ant dapat membuat file TAR yang akan mempertahankan atribut di semua sistem operasi Linux/Unix.

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

Saya rasa Anda dapat melakukannya dengan Apache Commons Compress.

Paragraf pertama:

Akses ke atribut internal dan eksternal (yang digunakan untuk menyimpan izin Unix oleh beberapa implementasi zip).

Lihatlah API dan cari setUnixMode()


Anda tidak perlu beralih ke file tar. Saya tidak tahu mengapa orang yang tidak mengenal Ant menawarkan saran tentang topik ini.

Gunakan parameter filemode zipfileset. Didokumentasikan di http://ant.apache.org/manual/Types/zipfileset.html


Linux
  1. Bagaimana cara mengaktifkan pengindeksan file dan direktori Apache di Linux atau UNIX?

  2. Periksa izin file Linux dengan ls

  3. Memahami Dasar-dasar Inode UNIX / Linux dengan Contoh

  1. Bagaimana kita bisa menyimpan kata sandi selain teks biasa?

  2. Mempertahankan izin file dengan Git

  3. Log akses Apache secara otomatis mengatur izin

  1. Di Linux/Unix, apakah .tar.gz versus .zip penting?

  2. izin file di zip/7z/rar?

  3. File zip diperluas dengan garis miring terbalik di Linux, tanpa subdirektori