ln-s с путем относительно pwd

Попытайтесь добавить следующее к Вашему /etc/default/locale файл, возможно, также на /etc/environment.

LC_ALL=en_US.UTF-8
LANGUAGE=en_US.UTF-8

Более адекватно добавьте следующее к /etc/profile

: ${LANG:=en_US.UTF-8}; export LANG
: ${LC_ALL:=en_US.UTF-8}; export LC_ALL

Если после перезагрузки, которая не устраняет проблему, попытайтесь выполнить virtualbox от терминала как это

(export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8; VirtualBox)

или независимо от того, что название исполняемого файла, и посмотрите, изменяет ли это что-нибудь. Я читал где-нибудь, что qt 4.7 имел проблемы локалей, закрепленные на 4,8 версиях.

Редактирование, как Chris Brown упомянул на комментариях, Установив LC_ALL переменная глобально не является корректным решением. Это более предназначается как временное обходное решение в случае, если проблемой является ошибка на 4,7 версиях. Это изменение должно быть отменено, если это не проблема или если это фиксируется после обновления до qt 4.8.

28
17.04.2014, 02:01
4 ответа

Самый простой способ привязать текущий каталог к ​​абсолютному пути, не вводя всю строку пути, будет

ln -s "$(pwd)/foo" ~/bin/foo_link

] target (первый) аргумент для команды ln -s работает относительно местоположения символической ссылки, а не вашего текущего каталога. Полезно знать, что, по сути, созданная символическая ссылка (второй аргумент) просто содержит текст , который вы предоставили для первого аргумента.

Следовательно, если вы сделаете следующее:

cd some_directory
ln -s foo foo_link

, а затем переместите эту ссылку вокруг

mv foo_link ../some_other_directory
ls -l ../some_other_directory

, вы увидите, что foo_link пытается указать на foo в каталог, в котором он находится. Это также работает с символическими ссылками, указывающими на относительные пути. Если вы сделаете следующее:

ln -s ../foo yet_another_link

, а затем переместите still_another_link в другой каталог и проверьте, куда он указывает, вы увидите, что он всегда указывает на ../ foo . Это предполагаемое поведение, поскольку часто символические ссылки могут быть частью структуры каталогов, которая может находиться в различных абсолютных путях.

В вашем случае, когда вы создаете ссылку, набирая

ln -s foo ~/bin/foo_link

foo_link , просто содержит ссылку на foo относительно ее местоположения. Помещение $ (pwd) перед именем целевого аргумента просто добавляет абсолютный путь к текущему рабочему каталогу, так что ссылка создается с абсолютной целью.

35
27.01.2020, 19:39
[119880]?

0
27.01.2020, 19:39

Использование -r ( - относительный ) заставит это работать:

ln -sr foo ~/bin/foo_link
6
27.01.2020, 19:39

Чтобы не печатать, вы можете

ln -s "$PWD"/foo ~/bin/foo_link
2
27.01.2020, 19:39

Теги

Похожие вопросы