Сначала подтвердите, что настраивать сценарий присутствует, где Вы думаете, что это. Второй удостоверяются, что это - исполняемый файл:
$ ls -l ./configure
-rwxrwxr-x 1 saml saml 100 Jun 9 05:11 ./configure
Если обе из проверок в порядке затем, Вы могли бы хотеть попытаться работать configure
первыми изменяющимися каталогами к /mainfolder/execution
и затем выполнение configure
как это:
$ cd /mainfolder/execution
$ ../configure
Вы также могли бы хотеть попробовать его этот путь:
$ cd /mainfolder
$ ./configure execution
Согласно комментариям, оставленным OP, следующая структура каталогов, кажется, то, что он описывает:
$ tree -f
.
`-- /mainfolder
`-- /mainfolder/execution
`-- /mainfolder/execution/configure
Режимы файлов охватывают два разных понятия: типы файлов и права доступа к файлам. Режим файла представлен значением st_mode
в результате вызовов stat (2)
, а ls -l
представляет их все вместе; подробности см. в Общие сведения о разрешениях UNIX и типах файлов .
После создания файла его тип изменить нельзя. Кроме того, в системах Linux вы не можете указать разрешения для символической ссылки; все, что имеет значение, - это разрешение цели (и, по сути, полный режим, поскольку он также определяет поведение символической ссылки). Подробнее см. https://superuser.com/questions/303040/how-do-file-permissions-apply-to-symlinks . В Mac OS X символические ссылки могут иметь собственные разрешения.
Наконец, git
использует упрощенную модель с ограниченным числом распознаваемых режимов:
040000
для каталога 100644
для обычного файла 100755
для исполняемого файла 120000
для символической ссылки Эти значения можно увидеть с помощью таких команд, как git cat-file -p 'master ^ {tree}'
; подробности см. в Pro Git .
Символьная ссылка (хотя некоторые файловые системы обрабатывают символьные ссылки по-разному) - это запись таблицы inode
, которая указывает на то же место, что и другой файл (или каталог).
Например, если foo
- это inode 1234
, то bar
(символическая ссылка на foo) будет inode 1234
.
bar
на самом деле не существует, это просто указатель на «настоящий» файл.
Символьные ссылки
обычно не имеют разрешений за пределами разрешений файла, на который они указывают. Итак, права доступа bar
«такие же» , что и foo
. Вы не можете установить разрешения для панели
(символическая ссылка) только для foo
(настоящий файл).
При этом, это действительно взгляд высокого уровня. Разные файловые системы по-разному обрабатывают символические ссылки. Различные инструменты обрабатывают символические ссылки
по-разному. Некоторые файловые системы «помечают» символические ссылки
и обрабатывают их особым образом, но некоторые этого не делают.
Например, chmod
в Linux
не изменяет разрешения символических ссылок
, но в OSX
вы можете получить его. В обоих случаях изменяются права доступа к файлам.
Я не могу придумать ни одной системы (не значит, что ее нет), в которой символическая ссылка
имеет разрешения отдельно от реального файла.
What file mode indicates that a file is a symbolic link (symlink)?
La API POSIX para comprobar si un archivo es un enlace simbólico utiliza la macro S_ISLNK
.
En glibc, S_ISLNK
se define de la siguiente manera:
#define __S_IFMT 0170000 /* These bits determine file type. */
#define __S_IFLNK 0120000 /* Symbolic link. */
#define __S_ISTYPE(mode, mask) (((mode) & __S_IFMT) == (mask))
#define S_ISLNK(mode) __S_ISTYPE((mode), __S_IFLNK)
es decir, un archivo es un enlace simbólicoif ((mode & 0170000) == 0120000)
(al menos en GNU/Linux ).