Мегаобучалка Главная | О нас | Обратная связь


Файлы связей. Создание файлов связей.



2019-07-04 248 Обсуждений (0)
Файлы связей. Создание файлов связей. 0.00 из 5.00 0 оценок




Жесткие связи.

UNIX позволяет одному физическому файлу иметь несколько имен в файловой системе. Заметьте, что имя файла является атрибутом файловой системы, а не набора данных на диске, который не имеет имени как такового; а имеет связанные с ним метаданные, содержащие все характеристики файла и позволяющие операционной системе выполнять открытие, прочтение, запись данных, создание или удаление файла. Связь имени файла с его данными называется жесткой связью. Для создания жесткой связи используют команду ln. Например, для создания еще одного имени (second) файла, на который уже указывает имя first используют команду

ln first second

Жесткие связи абсолютно равноправны. Доказательством этого служит то, что при использовании команды

Ls -l

атрибуты файлов first и second first будут абсолютно одинаковыми.

Хотя с точки зрения пользователя это два разных файла, изменения внесенные в каждый из этих файлов затронут и другой, ведь имена ссылаются на одни и те же данные файла. Вы можете переместить один из файлов в другой каталог - все равно они будут связаны жесткой связью с данными файла. Легко проверить, что удаление одного из файлов first, second не приведет к удалению самого файла; для этого нужно удалить все связи. Информацию о наличии у файла нескольких имен, связанных с ним жесткими связями можно получить из списка файлов, который выдает команда ls -l:

-rw-r--r-- 2 andrei stuff 7245 Jan 17 8:05 second

-rw-r--r-- 2 andrei stuff 7245 Jan 17 8:05 first

Во второй колонке списка указывается число жестких связей каждого файла.

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

Однако давайте все же создадим жесткую связь к файлу . profile (проверьте его наличие в текущем каталоге командой ls,а в случаеотсутствия выберите любой из существующих файлов):

ln . profile pr1

Команда

Ls -l

убедит Вас, что Вы создали жесткую связь - в списке файлов текущего каталога две строки (.profile и pr1) отличаются лишь названиями файлов.

Попробуйте использовать опцию -v команды ln. Она выводит на экран сообщение о том, что делает команда ln

ln -v .profile pr2

В этом случае результатом работы опции -v будет строка:

ln .profile pr2

означающая, что создана связь pr2 к файлу .profile. А вот, если Вы еще раз введете эту же команду (ln -v .profile pr2), сообщение опции -v будет иным:

ln .profile pr2: File exists

Оно означает, что файл pr2 уже существует.

В том случае, если Вы указываете в качестве имени файла связи имя уже существующего файла, то связь создана не будет. Убедитесь в этом, набрав следующие команды:

ln .kermrc pr2

(Вы хотите создать файл связи pr2 к файлу .kermrc). Но система тут же выдает Вам сообщение

ln .kermrc pr2: File exists

(Файл существует).

Ls -l

показывает, что pr2 по-прежнему является жесткой связью к файлу .profile.

Символические связи.

Особым типом файла является символическая связь. В отличие от жесткой связи, символическая связь ссылается не на данные файла, а на его имя. Данные файла, являющегося символической связью, содержат только имя целевого файла.

Команда ln -s создает символическую ссылку на указанный файл. Например, команда

ln -s first symsecond

создает для файла first файл символической связи symsecond. Сравнить созданные файлы поможет команда ls -l

-rw- r- - r - - 2 andrei stuff 7245 Jan 17 8:05 second

-rw- r- - r - - 2 andrei stuff 7245 Jan 17 8:05 first

lrwxrwxrwx 1 andrei stuff 6 Jan 17 8:05 symsecond /first

Как Вы видите, файл symsecond (символьная связь) существенно отличается от файла second (жесткая связь). Во-первых, фактическое содержание файла symsecond отнюдь не то же, что и у файла first или second, об этом говорит размер файла байт - ровно столько, сколько занимает имя файла, на который символическая связь ссылается. Во-вторых, файл symsecond не имеет никаких ограничений на доступ - очевидно права доступа к файлу символической связи определяются правами доступа к файлу, на который он ссылается (в нашем примере правами файла first). Также строка файла символьной связи содержит указатель на тип файла (l) в начале строки и имя файла, на который данный файл ссылается. Кроме всего прочего система работает с файлами символьных связей не как с обычными файлами. Например, при выводе на экран содержимого файла symsecond появятся данные файла first.

У команды ln в системеMINIX к сожалению нет опции -s, создающей символическую связь, но зато есть опция -r, которая позволяет создавать жесткие связи к каталогу и всем его файлам и подкаталогам. Об этой опции мы поговорим позже, когда научимся создавать каталоги.

Получение информации о файлах.

Как узнать тип файла.

UNIX позволяет выяснить тип файла командой file. Она сообщит Вам, является ли файл выполняемым (executable), файлом ASCII, файлом данных и т.д. Однако обратите внимание, что Вы находитесь в корневом каталоге, и команда file требует указания полного имени файла. Если Вы введете неполное имя файла (без указания пути к нему), то команда выполнена не будет, система сообщит Вам cannot start (не могу начать).

Например: 1) file /usr/bin/clr

1. file /clr

clr: cannot start

2. file /usr

Существует и другая возможность узнать тип файла. Вы уже встречались с командой ls (Вспоминайте, что делает эта команда?) и даже использовали опцию этой команды. Оказывается, у команды ls есть множество полезных опций (посмотрите в man page) и среди них – опция -F, которая позволяет получить информацию о типе файла. Чтобы увидеть, как она работает, введите следующую командную строку:

ls -F /

В выведенном на экран списке файлов и каталогов после их имен появились новые значки – это проделки опции -F.

Давайте разберемся с их значениями:

/ наклонная черта указывает на каталог,

* означает выполняемый файл,

@ означает файл связи,

если значок отсутствует, то это обычный файл (к таким файлам относятся текстовые файлы, бинарные данные, исполняемые программы – в общем, те файлы, содержимое которых интерпретируется прикладной программой, обрабатывающей файл).

Попробуйте для обычных файлов использовать команду file

file /.exrc

file /rty

Другoй пример использования опции –F :

ls -F /usr/bin/



2019-07-04 248 Обсуждений (0)
Файлы связей. Создание файлов связей. 0.00 из 5.00 0 оценок









Обсуждение в статье: Файлы связей. Создание файлов связей.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (248)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)