символьная ссылка новая цель

Это - команда для установки say на человечности:

sudo apt-get install gnustep-gui-runtime

На других дистрибутивах необходимо заменить apt-get с yum или какой бы ни диспетчер пакетов Вы имеете.

Как я нашел его: Если Вы выполняете какую-либо команду, которая не установлена в человечности (bash), затем это автоматически скажет Вам, как установить его. Я также искал Google сначала, но я не получил его.

Эта функциональность обеспечивается путем установки пакета Debian/Ubuntu command-not-found. (Который установлен по умолчанию),

enter image description here

3
04.01.2015, 19:11
1 ответ

. - метасимвол регулярного выражения в sed , соответствующий любому одному символу. Поскольку путь $ из вставляется непосредственно в регулярное выражение, . есть, как будто вы написали:

sed "s@.@../pool/@"

сами. Это заменяет один раз на " ../pool/", что приводит к удалению первого символа и вставке "../pool/" вместо него.

Если команда readlink выполняется вручную, вы обнаружите, что ./ не является частью содержимого ссылки - то же самое показывает ls .

Вам, по крайней мере, понадобится особый случай ". "в сценарии, поскольку он может присутствовать или отсутствовать в содержимом ссылки. Одним из вариантов является использование readlink -f как для канала, так и для . - что даст вам абсолютные пути к обоим - но есть более простые варианты, если у вас есть только один случай.


Если вы находитесь в bash , вы можете уйти без sed вообще с помощью основного расширения параметров :

ln -sf "${a/$from/$to}" "$i"

, которое заменит расширение $ с расширением $ до в $ а , на . обрабатывается буквально (хотя используются * и другие метасимволы оболочки - действительно это должно быть "$ {a/" $ от "/" $ до"} ", чтобы избежать этого). Это более чистый и простой способ сделать это в целом.

1
27.01.2020, 21:31

Теги

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