Как определить, существует ли уже программная ссылка? Не знаю, как это определить. Я новичок в Unix / Linux
Если в вашем текущем каталоге есть 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
Мягкие ссылки будут отображаться в небе синий цвет
Как пользователь
$ ls -l
, если первый символ битов режима (первый столбец) равен l
, это ссылка.
Если вы просто хотите проверить это из скрипта,
$ test -L maybealink && echo "it is a symlink"
Я предполагаю, что вы хотите найти символические ссылки на определенный файл, но не знаете, в каком каталоге они могут быть. В этом случае введите
find . -lname "path/to/filename" -ls
, например
find . -lname "develop/source/itried.cpp" -ls
, чтобы найти и показать (начиная с текущего каталога) любые символические ссылки файла с именем itried.cpp
, который находится в каталоге [ 114].
или
find . -lname "*.cpp" -ls
, чтобы найти символические ссылки на любые .cpp
файлы в вашем текущем каталоге.
.
после поиска говорит ему искать из вашего текущего каталога вниз.