Определение, существует ли уже мягкая ссылка [закрыто]

Как определить, существует ли уже мягкая ссылка? Я не знаю, как это определить. Я новичок в Unix / Linux

2
задан 17.04.2020, 19:23

3 ответа

Я предполагаю, что вы хотите найти символические ссылки на определенный файл, но не знаете, в каком каталоге они могут быть. В этом случае введите

find . -lname "path/to/filename" -ls

, например

find . -lname "develop/source/itried.cpp" -ls

, чтобы найти и показать (начиная с текущего каталога) любые символические ссылки файла с именем itried.cpp, который находится в каталоге [ 114].

или

find . -lname "*.cpp" -ls

, чтобы найти символические ссылки на любые .cpp файлы в вашем текущем каталоге.

. после поиска говорит ему искать из вашего текущего каталога вниз.

0
ответ дан 17.04.2020, 19:23
  • 1
    Обратите внимание, что эти -lname собирается соответствовать точному строковому содержанию ссылки, и таким образом, это не может соответствовать тому, что Вы ожидаете, является ли ссылка полным путем или содержит .. и т.д. – Wandrille 17.04.2020, 19:24
  • 2
    It' s шарик, но это подобрано против строкового содержания ссылки. Таким образом, можно сделать это, если Вы добавляете подстановочные знаки. – Wandrille 17.04.2020, 19:24
  • 3
    @poolie, нет, это - шаблон оболочки (не " точный string"), таким образом, можно определить то, что Вы хотите найти определенной степенью – fayez jabra 17.04.2020, 19:25

Если в вашем текущем каталоге есть soft-link

Используйте команду ll для отображения длинного списка файлов

Вывод будет таким

lrwxrwxrwx   1 root root    24 Dec  2  2011 default-java -> java-1.6.0-openjdk-amd64/
drwxr-xr-x   6 root root  4096 Oct  8 11:29 java-1.5.0-gcj-4.6/
lrwxrwxrwx   1 root root    24 Dec  2  2011 java-1.6.0-openjdk -> java-1.6.0-openjdk-amd64/
lrwxrwxrwx   1 root root    20 Jul 17 21:41 java-1.6.0-openjdk-amd64 -> java-6-openjdk-amd64/
-rw-r--r--   1 root root  2387 Jul 17 21:41 .java-1.6.0-openjdk-amd64.jinfo

если перед rwrwrw есть l, то его мягкая ссылка

lrwxrwxrwx   1 root root    24 Dec  2  2011 default-java -> java-1.6.0-openjdk-amd64/

Это мягкая ссылка, java-1.6.0-openjdk-amd64 была мягко привязана к default-java

Мягкие ссылки будут отображаться в небе синий цвет

0
ответ дан 17.04.2020, 19:23

Как пользователь

$ ls -l 

, если первый символ битов режима (первый столбец) равен l, это ссылка.

Если вы просто хотите проверить это из скрипта,

$ test -L maybealink && echo "it is a symlink"
0
ответ дан 17.04.2020, 19:24
  • 1
    Вы предполагаете, что ссылка находится в текущем каталоге. – deniswsrosa 17.04.2020, 19:24

Теги

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