Mac ln -s команда не відповідає, але раніше працювала


1

Заздалегідь вибачтесь за будь-які помилки новичка з мого боку ... Я нещодавно користувач ПК ввійшов у світ Маків через нову роботу ...

Запуск ОС X Yosemite 10.10.5 PHP версії 5.5.27 Apache версії 2.4.16 (Unix)

Я намагався створити і запустити localhost для розробки веб-сайтів на місцях. Я зробив це успішно один раз - сам localhost працює без проблем.

Проблема виникла під час спроби створити символічне посилання між папкою сайтів, використовуваною localhost, і тим, де фактично зберігаються файли сайту (це місце не можна змінити).
(Я також знаю про погану практику з пробілами у файлах файлів, але ці сайти вже створені)

Я дотримувався вказівок у цьому підручнику, спочатку без проблем. http://ole.michelsen.dk/blog/setup-local-web-server-apache-php-osx-yosemite.html

У мене ОДИН сайт створений і працює з символьним посиланням, створеним за допомогою ln -s '/ / Dropbox / спільних сайтів / SITENAME ~ / сайтів / SITENAME' Тут проблем взагалі немає (SITENAME - це каталог, в якому містяться файли сайтів)

Однак я зараз намагаюся додати другий сайт. За допомогою команди, наведеної вище, термінал стає невідповідним. До наступного рядка додається A>, але, здається, команди не виконуються (симпосилання не працює). Я можу набрати, але ніякі команди не виконуються. Натискання CTRL + C повертає термінал у попередній стан, де він знову прийме команди. Усі інші команди, здається, працюють правильно.

Я переконався, що каталог існує, і я в змозі перейти на нього. Я також спробував запустити ln -s '/ SITENAME ~ / Sites / SITENAME' у батьківській папці з тим самим результатом. Я також спробував запустити команду з sudo

Я також спробував завантажити та використовувати iTerm, з тим же результатом.

Також спробували створити символьне посилання для 3-го / окремого сайту, знову ж.

Хтось може світити будь-яке світло на те, чому ця команда, здається, перестала функціонувати, коли раніше працювала, і як виправити або обробити це, щоб додати додаткові сайти до localhost?

Дякую :)


Я думаю, що ви використовуєте апострофи там, де вони не потрібні, не є корисними, а насправді є шкідливими. Спробуйте бігти без апостроф.
TOOGAM

@TOOGAM - Дивовижний, дякую - дивно, він працював з апострофами раніше - він не працює лише з видаленими апострофами (через пробіли у файлах файлів ...) - але я просто спробував уникнути пробілів з \ і це, здається, працює зараз! Тож я використав ln -s ~ / Dropbox / Shared \ Sites / SITENAME ~ / Sites / SITENAME (на випадок, якщо хтось інший натрапить на це у майбутньому)
Roxy Walsh

Відповіді:


0

Для наочності для всіх, хто може мати ту саму проблему (я не можу бути єдиною, правда ?: S):

Завдяки @TOOGAM - рішенням було усунути апострофи / лапки і замість цього вийти з пробілів символом \ - тому команда, яка зараз працює, це

ln -s ~ / Dropbox / Спільні \ Сайти / SITENAME ~ / Сайти / SITENAME

Досі не мудріше, чому він спочатку працював з апострофами, але проблема вирішена все-таки! :)


0

Щоб хто-небудь ще приєднався, дивіться також відповідь, яку опублікувала Роксі Уолш, яка містить деякі додаткові відомості про проблему, необхідні для розуміння деяких деталей, наданих моєю відповіддю.

Гаразд, ось угода:
Апострофи рятувались від тильдів.

Спробуйте це:

ехо ~
ехо '~'

Що ви знайдете, це те, що перша команда розширює ~ до домашнього каталогу. У другій команді ви отримуєте фактичний тильд. Тильда "втекла". Втеча означає вказати, що до персонажа потрібно ставитися як до звичайного персонажа, а не до спеціального значення.

Тепер, що вам потрібно було зробити, це уникнути просторів, що ви робили з косою рисою, але не уникати тильди. Простори мають особливе значення, яке полягає у розділенні ваших параметрів. Ви не хочете, щоб це було розділено: ваш простір у "Спільні сайти /" - це частина однієї директорії. Цей конкретний простір не призначений для того, щоб повідомити команді "ln" про те, що ви закінчили, вказуючи перший файл / каталог, і збираєтесь вказати наступний файл / каталог. Тож цей простір потрібно було уникнути.

На основі прикладу, який ви показали, також працювало б наступне:

ln -s ~ / 'Dropbox / Спільні сайти / SITENAME' ~ / Сайти / SITENAME


Це має багато сенсу, дякую за детальне пояснення! :)
Roxy Walsh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.