Я перечислял каталог, он отображал несколько файлов / каталогов с l прямо перед столбцами разрешений, и у них есть два имени, разделенных -> звездочкой *(что означает исполняемый файл). Что значит это l

cd /opt/lampp/bin/
ll php*  
---- 
lrwxrwxrwx 1 root root       13 Nov 15 16:05 phpize -> phpize-5.5.15*
-rwxrwxrwx 1 root root     4522 Aug 20 17:23 phpize-5.5.15*

и как выполнить эти команды или зайти внутрь этих директоров. Я попытался выполнить с обоими именем на терминале отдельно, но оба возвращает not a directory

/opt/lampp/bin$ phpize
No command 'phpize' found, did you mean:
 Command 'phpize5' from package 'php5-dev' (main)
phpize: command not found

/opt/lampp/bin$ cd phpize
bash: cd: phpize: Not a directory

1 ответ1

5

Это символическая ссылка, которая также обозначена буквой l в первом столбце. Это обычный случай, когда простое имя чего-либо связано с "реальной вещью" с точным номером версии. Все ваши скрипты и команды могут просто ссылаться на /opt/lampp/bin/phpize . Когда установлена версия 5.5.16 или 5.6, вам просто нужно изменить ссылку (или установщик сделает это за вас).

"Не каталог": как вы упомянули, звездочка указывает, что это исполняемые файлы, а не каталоги. То, что обычно добавляет звездочку для исполняемых файлов, ставит косую черту / для каталогов. Так что cd не применим.

Ваша проблема с запуском исполняемого файла в текущем каталоге является распространенной. Короче говоря, если вы укажете только имя, оболочка будет искать ваш PATH. Это распространенная и рекомендуемая практика, чтобы ваш текущий каталог не был в вашей переменной PATH. Итак, что все делают, это просто указывают текущий каталог: ./phpize

Альтернативы, чтобы указать весь путь, как у меня выше. Это, конечно, будет работать независимо от текущего каталога. Или вы можете добавить этот каталог в ваш путь. Если у вас много каталогов только с одним или двумя исполняемыми файлами, которые вы часто используете, это может оказаться громоздким. Таким образом, другое использование символических ссылок - создание ссылок на эти разбросанные исполняемые файлы (ссылки на короткие имена без версий - ссылки могут быть вложенными) и помещение всех этих новых ссылок в один каталог, который вы добавляете в PATH. Так что теперь, когда вы набираете только имя, оболочка с поиском по PATH находит вторичную ссылку, которая переходит на первичную ссылку, находит точный исполняемый файл и запускает его.

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