1

У меня есть небольшой набор файлов, которые я разрабатываю в Windows, но мне нужно извлечь их и запустить в Linux. Одним из таких файлов является скрипт StartApp.sh. Я упаковываю файлы в виде zip-архива, передаю их моему администратору и прошу его вручную установить атрибут execute в StartApp.sh перед его запуском.

Существует ли инструмент архивации (работающий в Windows), в котором я могу установить "атрибут выполнения" в самом архиве или zip-файле? (Таким образом, при извлечении в Linux скрипт будет выполняться без ручных шагов.)

3 ответа3

1

Насколько я знаю, такого инструмента не существует, если только вы не используете Cygwin для Windows, Linux-подобную среду для Windows.

Ваши другие варианты:

  • Создайте скрипт распаковки для вашего почтового индекса, который установит разрешение на выполнение
  • Используйте систему управления версиями для передачи файлов, а не ZIP
1

Если вы готовы проделать небольшую работу, для этого можно написать скрипт Python, используя zipfile. Хитрость заключается в том, чтобы переместить элемент ZipInfo.external_attr для рассматриваемого файла перед использованием ZipFile.writestr() чтобы добавить его в архив. Посмотрите исходный код ZipFile.write() для точных манипуляций, которые вам нужно выполнить.

    zinfo.external_attr = (st[0] & 0xFFFF) << 16L      # Unix attributes
0

Я бы не рассчитывал найти утилиту архивирования, которая позволяет вам делать это изначально (если собственная файловая система этого не делает, маловероятно, что заставить приложение сделать это)... мой ответ на большинство вопросов, касающихся windows/linux кроссовер Cygwin

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .