LINUX.ORG.RU

вопрос про ссылки, просьба помочь


0

1

Добрый день! Вопрос про ссылки, которые можно создавать в Linux (символические, жесткие и другие). Насколько я понял, при создании симв.ссылки создается файл вида @1.txt (пример). Необходимо определить откуда и на что (места или файлы) в системе созданы ссылки. При просмотре директорий, откуда и куда были созданы ссылки никаких файлов такого типа @file_name.txt нет. При просмотре через Midnight Commander заходим в директорию и видим там папку /u01 и ~data (скриншот). Это ссылка или нет и если да, то какая она? Как определить?


и другие

других нет

Необходимо определить откуда и на что (места или файлы) в системе созданы ссылки

в консоли ls -l

teod0r ★★★★★
()

Это ссылка или нет и если да, то какая она?

В mc тильда (~) перед именем директории означает, что это ссылка. Внизу панели показывается, куда она указывает.

В терминале узнать, куда указывает ссылка, можно с помощью readlink (man 1 readlink). В C-программе тоже readlink (man 2 readlink и man 2 readlinkat).

Найти все ссылки можно так: find /usr -type l

i-rinat ★★★★★
()

Это ссылка или нет и если да, то какая она? Как определить?

Листинг 6. Определение ссылок
ian@attic4:~$ ls --color=none -lR lpi104-6
lpi104-6:
total 12
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file1
-rw-r--r-- 1 ian ian    0 2010-05-26 14:11 file2
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file3
lrwxrwxrwx 1 ian ian   24 2010-05-27 17:15 file4 -> /home/ian/lpi104-6/file1
lrwxrwxrwx 1 ian ian    5 2010-05-27 17:15 file5 -> file1
lrwxrwxrwx 1 ian ian   14 2010-05-27 17:37 file6 -> lpi104-6/file1
drwxr-xr-x 2 ian ian 4096 2010-05-26 14:11 subdir

lpi104-6/subdir:
total 4
-rw-r--r-- 3 ian ian 28 2010-05-27 17:17 file3sub
ian@attic4:~$ /bin/ls -l ~ian/research/lpi104-6/file4
lrwxrwxrwx 1 ian ian 24 2010-05-25 11:51 /home/ian/research/lpi104-6/file4 -> /home/ian/
lpi104-6/file1
ian@attic4:~$ /bin/ls -l lpidir104-6
lrwxrwxrwx 1 ian ian 8 2010-05-27 17:16 lpidir104-6 -> lpi104-6
 

Второй столбец вывода в листинге 6 содержит счетчик ссылок, показывающий количество жестких ссылок на файл. Таким образом, мы видим, что файлы file1, file3 и file3sub имеют по нескольку жестких ссылок, указывающих на представляемые ими объекты; тем не менее, этой информации еще недостаточно, чтобы понять, что все они представляют собой один и тот же объект. Если удалить файл, счетчик ссылок которого имеет значение больше 1, то счетчик ссылок в индексном дескрипторе понизится на 1, но файл не будет удален, пока счетчик не достигнет 0. Значения счетчиков всех других жестких ссылок на этот файл понизятся на 1.

Символические ссылки обозначаются символом 'l' (буква L в нижнем регистре) в первом столбце вывода команды ls -l. Кроме того, после символов -> выводится целевой объект ссылки, например, file4 -> /home/ian/lpi104-6/file1. Другой подсказкой может служить то, что размер ссылки в байтах равен количеству символов в имени ее целевого объекта. Заметьте, что счетчик ссылок в выводе содержимого директории не обновляется для символических ссылок. Удаление ссылки никак не влияет на целевой объект. Символические ссылки не защищают файлы от удаления; если целевой файл был перемещен или удален, ссылка становится «битой». По этой причине во многих операционных системах информация о содержимом директории выводится в цвете (как правило, голубым цветом отображаются рабочие ссылки, а красным цветом – битые).

Взято тут

anonymous
()

при создании симв.ссылки создается файл вида @1.txt

symlink - по факту - текстовый файл в котором путь и имя файла/каталога на которые она ссылается. Чтобы не поутать с текстовым файлом, на уровне файловой системы говорится что это ссылка. Так что никаких норм/требований к имени файла нет.
hardlink - это два файла, которые указывают на одну область на диске.

Необходимо определить откуда и на что (места или файлы) в системе созданы ссылки

Только однострочником с помощью find: для симлинков искать на что они ссылаются, за хардлинки - номер inode .
P. S. А зачем?

При просмотре через Midnight Commander

Если симлинк - перед именем тильда (или восклицательный знак, если симлинк битый). Если хардлинк - никак; только ls -l может показать сколько еще есть хардлинков на этот файл, но где они - только find (by design невозможно).

Kroz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.