Мені сказали виконати це:
./yiic message ./app/messages/config.php
Але я не розумію ./сенсу, може хтось уточнить, будь ласка.
Примітка. Повірте, ми не можемо це гугл. Я спробував:
./ значення ./ ubuntu
Це було те саме, що нічого. :(
Мені сказали виконати це:
./yiic message ./app/messages/config.php
Але я не розумію ./сенсу, може хтось уточнить, будь ласка.
Примітка. Повірте, ми не можемо це гугл. Я спробував:
./ значення ./ ubuntu
Це було те саме, що нічого. :(
Відповіді:
./або просто .це скорочення для Unix для поточного каталогу.
Потрібно вказати його, коли поточний каталог не знаходиться у вашій PATH. PATH - це список папок, які шукаються під час запуску програми. (Ви можете визначити це, записавши echo $PATH.) Якщо виконуваного файлу немає у вашому PATH, для його запуску потрібно вказати папку, в якій він знаходиться. Ви можете зробити це, надавши повний шлях до файлу, але якщо файл знаходиться у поточний каталог, який ви можете використовувати ./як стенограму.
Аналогічно, ../або просто ..це скорочення для каталогу вище поточного.
.. Це тому, що автоматично за допомогою поточного каталогу є отвір для захисту. Уявіть, що хтось інший робить програму, називає її lsта ви cdу своєму каталозі, а потім наберітьls
Кожен каталог у командному рядку має два "спеціальні каталоги", що називаються .та ... Це скорочення відповідно до поточного каталогу та до каталогу, що містить поточний каталог.
Так, наприклад, cd ./more/directory/namesпросто означає "почати з поточного каталогу і продовжувати шлях". Аналогічно команда cd ..означає "змінити один каталог вгору.
Якщо ви хочете назву поточного каталогу, ви можете скористатися pwdкомандою. Крім того, якщо ви використовуєте -aпрапор для ls, ви можете побачити ці два спеціальні каталоги. Тобто ls -aвиведе список, починаючи з .і ...
Інші вже пояснили, що .і що ..означає (поточний каталог і батьківський каталог відповідно). Це стосується всіх імен шляхів.
Відкриваючи термінал, ви зазвичай запускаєте у свій домашній каталог: ~(який розширюється до /home/username). Нижче наведені шляхи еквівалентні, якщо ваш поточний робочий каталог /home/username:
/home/username.../username../../home/username../../../home/username(батьківський каталог /досі є /)./././././. (поточний каталог у поточному каталозі у ...)./ (кінцеві косої риски дозволені для каталогів)/home////username/// (і так є декілька косої риски)Ви НЕ плутайте ./programз . program. ./programзапускає файл у поточному каталозі з набором бітів виконання. . ./programє баш-річчю і може бути записаний так, source ./programщо читає команди bash з programфайлу в поточному каталозі та виконує їх у поточній оболонці.
Якщо вам цікаво , чому ви можете просто запустити geditзамість , /usr/bin/geditа не programзамість ./programабо /home/username/program, побачити пов'язаний з цим питання:
Це означає починати з current directory path.
Припустимо, у вас pathтаке:
/usr/ /usr/bin/ /usr/local/bin
а всередині /usr/bin/є виконаний файл, який називається yiic.
Якщо ви опублікуєте, yiicце розпочнеться в /usr/bin/.
Випускаючи, ./yiicви скажете системі заглянути в поточний каталог для цього виконуваного файлу.
/home/mysuser/і я переходжу туди за допомогою cd /home/myuser. Потрапивши всередину, я вважав, що робити просто ємік, це має працювати, тому що я зателефонував у той каталог. Але він каже, що команда не подавати. Якщо я роблю те саме, і я використовую ./, він працює належним чином ... Чи можете ви уточнити трохи більше?
.це спеціальний файл всередині папки, який ви можете бачити під час роботи ls -laв каталозі;)