Linux посмотреть путь символьной ссылки

barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)

четверг, 12 апреля 2012 г.

Linux: просмотр, куда ссылаются символические ссылки

aa@bbb:~$ ls /usr/share/tomcat6/lib -l
итого 0
lrwxrwxrwx 1 root root 37 Фев 29 15:28 annotations-api.jar -> ../../java/annotations-api-6.0.28.jar
lrwxrwxrwx 1 root root 34 Фев 29 15:28 catalina-ant.jar -> ../../java/catalina-ant-6.0.28.jar

Комментариев нет:

Отправить комментарий

Метки

Постоянные читатели

Поиск по этому блогу

Общее·количество·просмотров·страницы

Архив блога

  • ►2023 (6)
    • ►июля (1)
    • ►мая (3)
    • ►апреля (1)
    • ►марта (1)
    • ►2022 (7)
      • ►июня (1)
      • ►мая (1)
      • ►апреля (1)
      • ►марта (2)
      • ►февраля (1)
      • ►января (1)
      • ►2021 (8)
        • ►декабря (1)
        • ►ноября (4)
        • ►августа (1)
        • ►июня (1)
        • ►апреля (1)
        • ►2020 (20)
          • ►июля (4)
          • ►июня (1)
          • ►апреля (3)
          • ►марта (2)
          • ►февраля (4)
          • ►января (6)
          • ►2019 (11)
            • ►декабря (1)
            • ►ноября (3)
            • ►октября (2)
            • ►июля (1)
            • ►июня (1)
            • ►апреля (2)
            • ►марта (1)
            • ►2018 (8)
              • ►декабря (2)
              • ►ноября (1)
              • ►апреля (4)
              • ►марта (1)
              • ►2017 (19)
                • ►декабря (1)
                • ►ноября (3)
                • ►октября (1)
                • ►сентября (5)
                • ►августа (1)
                • ►июля (1)
                • ►июня (2)
                • ►апреля (2)
                • ►февраля (3)
                • ►2016 (40)
                  • ►декабря (3)
                  • ►ноября (5)
                  • ►октября (6)
                  • ►сентября (3)
                  • ►августа (5)
                  • ►июня (2)
                  • ►мая (1)
                  • ►апреля (5)
                  • ►марта (1)
                  • ►февраля (4)
                  • ►января (5)
                  • ►2015 (43)
                    • ►декабря (7)
                    • ►ноября (3)
                    • ►сентября (11)
                    • ►августа (7)
                    • ►июля (2)
                    • ►июня (5)
                    • ►апреля (2)
                    • ►марта (3)
                    • ►февраля (1)
                    • ►января (2)
                    • ►2014 (38)
                      • ►декабря (3)
                      • ►ноября (3)
                      • ►октября (2)
                      • ►сентября (1)
                      • ►августа (3)
                      • ►июля (2)
                      • ►апреля (7)
                      • ►марта (5)
                      • ►февраля (7)
                      • ►января (5)
                      • ►2013 (119)
                        • ►декабря (7)
                        • ►ноября (2)
                        • ►октября (3)
                        • ►сентября (2)
                        • ►августа (9)
                        • ►июля (10)
                        • ►июня (17)
                        • ►мая (5)
                        • ►апреля (20)
                        • ►марта (7)
                        • ►февраля (16)
                        • ►января (21)
                        • ▼2012 (313)
                          • ►декабря (27)
                          • ►ноября (20)
                          • ►октября (16)
                          • ►сентября (19)
                          • ►августа (11)
                          • ►июля (21)
                          • ►июня (19)
                          • ►мая (23)
                          • ▼апреля (59)
                            • Java: генерация MD5-хэша
                            • Java: Генерация случайных строк (например, паролей)
                            • PostgreSQL: поля serial и «ERROR: duplicate key va.
                            • Spring Security за AJP proxy
                            • java.net.URLEncoder.encode и пробелы
                            • PostgreSQL: просмотр значений пользовательского EN.
                            • Использование карт в конфигурации Spring Security
                            • Псевдоэлемент :after и теги input / select
                            • JSTL: итерация по Map с помощью c:forEach
                            • Обработка атрибута title тега различными браузерами
                            • Валидация полей ввода, использующих jQuery.UI-видж.
                            • Валидация ip-v4 адресов на jquery-input-ip-address.
                            • Проблема с бьющейся кодировкой имен загружаемых на.
                            • Потокобезопасная реализация org.apache.http.client.
                            • Простейшая валидация обязательных полей формы с jQ.
                            • Bash: подсчет числа коннектов на определенный ip:port
                            • JSON POST запросы к Redmine REST API
                            • Orbeon: установка значения переменной в сессии по .
                            • Установка rmagick-гема в Debian Squeeze
                            • Установка pg-гема в Debian Squeeze
                            • Postgres: узнать версию СУБД SQL-запросом
                            • Яркость экрана в Kubuntu 11.10 на Lenovo B460e
                            • Linux и WiFi на Lenovo B460e
                            • Скробблинг на last.fm с MTP-девайсов в Linux
                            • Скробблинг на lastfm из Qmmp
                            • Сканирование изображений в KDE
                            • Настройка прокси с авторизацией в build-файлах ant
                            • Tomcat 6 на Debian Squeeze / Mint 13
                            • Debian: Быстрая настройка pure-ftpd
                            • Linux: просмотр, куда ссылаются символические ссылки
                            • Java: эквивалент DIRECTORY_SEPARATOR в PHP
                            • c3p0: com.mchange.v2.async.ThreadPoolAsynchronousR.
                            • c3p0: «WARNING: A C3P0Registry mbean is already re.
                            • Конфигурация пула JDBC-соединений c3p0 как JDNI Da.
                            • Пример арифметики дат / времени в Postgres
                            • Java: Валидация цепочки сертификатов с использован.
                            • Пул соединений с БД от Orcale
                            • Относительная производительность проверки ЭЦП ГОСТ.
                            • Использование криптопровайдеров в веб-приложениях .
                            • Tomcat: настройка логирования в масштабе веб-прило.
                            • Замена пулу commons-dbcp в Tomcat 7
                            • PostgreSQL: просмотр активных процессов
                            • GUI для GIT под Linux
                            • Добавление переменных окружения в Linux
                            • Настройка темы GTK3 приложений в KDE (Kubuntu 11.10)
                            • Выключение ноутбука под Android-x86 4.0 RC1
                            • Настройка grub для загрузки Android-x86
                            • Создание Live USB с Android-x86 4.0 RC1 для Asus E.
                            • Ошибка NetBeans: «Duplicate class: . » после выпо.
                            • org.xml.sax.SAXException: FWK005 parse may not be .
                            • Вывод отладочной информации Java PKI API
                            • Корректное развертывание веб-приложения, использую.
                            • java.security.NoSuchProviderException No such prov.
                            • Перегрузка статических методов в Java
                            • org.apache.commons.httpclient и библиотека Apache .
                            • java.lang.ClassNotFoundException: org.apache.xpath.
                            • Настройка пути к JDK, который используется Netbean.
                            • Oracle: просмотр содержимого пакета и его тела
                            • Определение версии Oracle из SQL-консоли
                            • ►марта (49)
                            • ►февраля (26)
                            • ►января (23)
                            • ►2011 (206)
                              • ►декабря (43)
                              • ►ноября (9)
                              • ►октября (32)
                              • ►сентября (13)
                              • ►августа (21)
                              • ►июля (21)
                              • ►июня (26)
                              • ►мая (11)
                              • ►апреля (30)

                              Источник

                              The symbolic link, also known as symlink or soft link, is the file type that can hold the location of a file or directory in any Linux file system. You have created a couple of Symbolic links in your Linux filesystem, and sometimes there comes a need to list all the symbolic links. This post provides you with a step-by-step guide on how to list all symlinks in a Linux filesystem or a specific Linux directory.

                              From a couple of ways to list all the symbolic links in a Linux directory, we will follow the reliable and best way using the find command.

                              Find command comes in handy when finding any type of file or folder in a Linux operating system.

                              Syntax

                              To find the symbolic links in any Linux operating system, the syntax is as follows:

                              is the location or directory name in which you want to search for the symbolic link,

                              -type is referencing the file type,

                              while l is representing the link file type.

                              Alright, let’s have a look at the examples and see how can we get the symbolic links listed in different ways by going through a couple of examples:

                              Examples

                              Using the find command, we can list the symlinks from the entire filesystem or in a specific directory. Let’s take a look at each example:

                              To list all the symlinks from the entire filesystem, you can execute the following find command by providing the “/” as path:

                              The “/” in the above command represents the entire file system, and the find command will search for the symbolic links from all over the system and list them out in the terminal.

                              Similarly, if you want to find and list all the symlinks in the current working directory, then simply provide the “.” as a path to the find command as shown below:

                              In the above command, the “.” tells the find command to find the symlinks in the current working directory.

                              To list all the symlinks in any directory, just provide the directory path to the find command as shown below:

                              The find command will look for the symbolic links in the /var/www/ directory only and list out all the symbolic links in that directory.

                              You might have noticed that all the above commands displayed the symbolic links in the desired directory and showed all the symbolic links from the subdirectories, as well.

                              So, what if you do not want to go into this much depth? You just want to have the symbolic links in the specified directory. The solution to that problem is not rocket science, and we can quickly mention the depth using the maxdepth flag.

                              For example, to set the search depth to level one, the find command would go like this:

                              You can witness the output shown in the screenshot given above. The find command has shown only the symbolic links of the current working directory instead of all the subdirectories.

                              Conclusion

                              This post has provided multiple ways and gives a brief explanation on how to list all the symbolic links in the Linux filesystem or a specific Linux directory. Using the find command, we have learned to find and list down all the symbolic links and set the maximum depth level using the maxdepth flag. If you want to learn and explore more about the find command, feel free to read the man page of find using the “man find” command.

                              About the author

                              Shehroz Azam

                              A Javascript Developer & Linux enthusiast with 4 years of industrial experience and proven know-how to combine creative and usability viewpoints resulting in world-class web applications. I have experience working with Vue, React & Node.js & currently working on article writing and video creation.

                              Источник

                              When I’m using ls -la symlinkName or stat symlinkName not all the path is displayed (e.g ../../../one/two/file.txt ) What is the linux command that reveals the full path?

                              One should be careful here: when ls or stat display no absolute path — the link has no absolute path! This is esp. important when the device is mounted e.g. in a different context (e.g. if you have something on a cd or usb-stick or try to recover some broken hdd). All the mentioned solutions (realpath, readlink. ) show only the absolute path in the mounted context.

                              10 Answers 10

                              realpath isn’t available on all linux flavors, but readlink should be.

                              The above should do the trick.

                              Alternatively, if you don’t have either of the above installed, you can do the following if you have python 2.6 (or later) installed

                              python -c 'import os.path; print(os.path.realpath("symlinkName"))' 

                              realpath should do the trick.

                              man realpath shows at the bottom that it it part of «GNU coreutils», which I’m pretty sure always comes on Ubuntu, so even though @IanStapletonCordasco says » realpath isn’t available on all linux flavors», it should at least be available on all Ubuntu and Ubuntu derivative flavors I believe.

                              unix flavors -> ll symLinkName

                              OSX -> readlink symLinkName

                              Difference is 1st way would display the sym link path in a blinking way and 2nd way would just echo it out on the console.

                              The question was asking specifically for the full/absolute path, not relative path (../../file.txt). Both of these answers will give the relative path.

                              I will give short review and analysis here, but for those TL;DR here is one-liner for bash, useful to anchor the working directory:

                              script_home=$( dirname $(realpath "$0") ) 

                              Or you can use any other filename instead of $0 to determine it’s real location.

                              There is not only problem of detemination of real path of some file, but especially some script is called via symlink from another location and needs to reference other resources relative to it’s real work directory.

                              Details follow. Lets assume we have real script or file and symbolic link to it:

                              $ ls -la -rwxr-xr-x 1 root root 0 Mar 20 07:05 realscript.sh lrwxrwxrwx 1 root root 10 Mar 20 07:05 symlink -> realscript.sh 

                              And the part of GNU coreutils are few very useful commands:

                              $ realpath symlink /home/test/realscript.sh 
                              realpath realscript.sh /home/test/realscript.sh 

                              Also very good combination in scripting is to use dirname on script

                              $ dirname /home/test/realscript.sh /home/test 

                              so to wrap it up, you can use in script

                              echo $( dirname $(realpath "symlink") ) 

                              or to get and store in variable real script home dir and save code to get real path script realscript.sh:

                              script_home=$( dirname $(realpath "$0") ) echo Original script home: $script_home 

                              Where «$0» is defined as «self» in shell script.

                              To test everything, we put symlink into /home/test2/, amend some additional things and run/call it from root directory:

                              $ /home/test2/symlink /home/test Original script home: /home/test Original script is: /home/test/realscript.sh Called script is: /home/test2/symlink 

                              Please try to write your self the amended outputs 🙂

                              Update 2021, there is also command:

                              readlink — print resolved symbolic links or canonical file names

                              DESCRIPTION Note realpath(1) is the preferred command to use for canonicalization functionality.

                              Источник

                              Читайте также:  Linux удалить старые пакеты
Оцените статью
Adblock
detector