Как я могу выполнить файл, не предоставляя себе разрешения на выполнение (с chmod u+x
) для него?
Если я попытаюсь установить флажок «Разрешить выполнение файла как программы», этот флажок будет немедленно удален.
permissions
executable
харакири
источник
источник
Ответы:
Проверить владение файлом
Пожалуйста, сделайте это прежде, чем что-либо еще (если вы не уверены, что владеете файлом).
Проверьте и убедитесь, что у вас есть файл, который вы пытаетесь выполнить одним из следующих способов.
графический
Командная строка
Выполните эту команду в терминале
You don't own the file
», см. «Изменить владельца файла» ниже.Изменить владельца файла
Выполните эту команду в терминале
Исполняемые файлы
Ответ я нашел от комментариев по Lekensteyn на ответ на вопрос о
chmod
на разделах NTFS , которые я думаю , что заслуживает собственный вопрос и ответ, полный кредит Lekensteyn.Используйте эту команду для исполняемых файлов (подставляя
/path/to/executable
правильный путь):64-битные исполняемые файлы:
32-битные исполняемые файлы:
Если вышеприведенное не работает (или выдает ошибки «файл не найден»), попробуйте использовать это перед приведенной выше командой.
Все вышеперечисленные команды не будут работать для текстовых скриптов (Bash, Python, Perl и т. Д.), См. Ниже.
Проверьте, является ли программа 64 или 32-битной
Используйте эту команду, чтобы узнать, является ли исполняемый файл 32- битным
x86
или 64-x86-64
битнымЕсли это говорит
i386:x86-64
, то это 64 бит. Если это говоритi386
только, то это 32 бит.Сценарии
Для текстовых скриптов (Bash, Python, Perl и т. Д.) Следует использовать команду, указанную в первой
#!
строке файла.Например, если первая строка файла
затем выполните эти команды в терминале (подставляя
/path/to/file
правильный путь).jar
Файлы JavaДля исполняемых jar-файлов Java вы можете просто использовать эти команды (подставляя
/path/to/jar
правильный путь):Когда тебе не нужно
cd "$(dirname /path/to/file)"
Это возможные обстоятельства, при которых вам не нужно использовать
cd "$(dirname /path/to/file)"
перед запуском программы каким-либо методом: если хотя бы один из них верен, вамcd
сначала не понадобится .apt-get
)cd
(или эквивалент) , чтобы изменить абсолютный путь , прежде чем делать какие - либо операции с файлами (пример:cd "$(dirname "$0")"
)./
косой черты или начинаются с нее)Если вы не уверены, добавьте
cd "$(dirname "$0")"
(или эквивалентный) в начало сценария (если применимо) или используйте вcd "$(dirname /path/to/file)"
любом случае.источник
Если это сценарий оболочки, вы можете «взять» его из другого сценария оболочки, то есть:
"$ @" Добавляет параметры командной строки, если это необходимо.
Сказав это, это, вероятно, не лучшее решение для основной проблемы, но мы недостаточно знаем об этой проблеме, чтобы предложить альтернативы.
источник
bash script $@