UNIX: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 24:
* .tar - архив, созданный системой tar
И много, много других - как, собственно, и в Windows. Но в Unix, в отличие от MS Windows, часто используются 2 префикса или даже больше. Например, если сжать программу на языке Си, её имя будет кончаться на .c.gz
 
<u>Строго говоря</u>, понятие [http://ru.wikipedia.org/wiki/Расширение_имени_файла расширения] не характерно для UNIX, и используется в именах файлов в основном для того, чтобы системы, придающие при обработке файла значение его расширению, могли правильно его обработать. Тем не менее, некоторые UNIX-программы (например такие как [http://http://ru.wikipedia.org/wiki/Файловый_менеджер файловые менеджеры]) используют расширение файла для его идентификации.
 
''Полное, или абсолютное, имя файла'' рекурсивно определяется как полное имя каталога, в котором он содержится, за которым следует слеш и имя файла. Полное имя корневого каталога - '''/'''. Так, в корневом каталоге '''/''' может содержаться каталог '''home''' (полное имя '''/home'''), в котором содержится каталог '''vasya''' (полное имя '''/home/vasya'''), в котором может содержаться каталог '''fotki''' (полное имя '''/home/vasya/fotki'''), в котором может содержаться файл '''masha.jpg''' (полное имя '''/home/vasya/fotki/masha.jpg''').
Строка 34 ⟶ 36 :
:'''ln kartinki/masha.jpg devushki/masha.jpg'''
 
Ссылки равноправны и (почти) не занимают места. Если на файл размером в 1 мегабайт есть 100 ссылок, используется 1 мегабайт (или чуть больше) дискового пространства. Но ссылки должны быть в пределах одногоодной дискафайловой системы: нельзя из каталога, находящегосяпринадлежащего наодной одномфайловой дискесистеме, создать ссылку на файл из другого диска. (В этом тексте диском называется любой носитель информации. Он может и не называться диском, ипринадлежащий недругой иметь форму диска, и вообще быть виртуальнымФС.) Если нужно сослаться на файл сдругой другогофайловой дискасистемы, можно использовать символическую ссылку, о которых см. в следующем параграфе.
 
Кроме того, каждый каталог содержит ссылку на себя (обозначается точкой (.)) и ссылку на тот каталог, в котором он находится (обозначается двумя точками (..))
 
Наконец, <u>совсем строго говоря</u>, каталог содержит ссылки не на файлы, а на ''индексные дескрипторы'' файлов. Индексный дескриптор, он же '''inode''' (произносится ай-нод, с ударением на о), содержит всю известную системе информацию о файлах, в частности время создания, время последнего изменения, длину, ссылку на сам файл, кто владеет этим файлам, права доступа (см. ниже), что это за файл (обычный файл, каталог и т.д.), а также - и это необходимо - количество ссылок на этот индексный дескриптор. При создании новой ссылки командой '''ln''', количество ссылок увеличивается на 1, при стирании - уменьшается на 1. Если количество ссылок становится равно 0, файлвызывается стираетсясистемный "навызов самомunlink(), деле":удаляющий всёупоминание о файле из каталога и помечающий место, назанимаемое дискеэтим файлом, котороекак занимаетсвободное. файлПосле иэтого индексныйоно дескрипторможет быть использованно для хранения других файлов, освобождаетсяоднако до фактической перезаписи сохраняется [теоретическая] возможность восстановления, на практике же возможность восстановления зависит -от тотипа естьиспользуемой объявляетсяфайловой свободнымсистемы.
 
Важно понимать, что ''индексный дескриптор не знает, откуда на него ссылаются''. Поэтому в UNIX, имея файл, невозможно определить, в каких ещё каталогах есть ссылки на него. (То есть можно, но лишь просмотрев все файлы, которые есть на диске.)
 
Важно понимать, что ''индексный дескриптор не знает, откуда на него ссылаются''. Поэтому в UNIX, имея файл, невозможно определить, в каких ещё каталогах есть ссылки на него. (То есть можно, но лишь просмотрев все файлы, которые есть на дискеФС.)
В системе Unix, как правило, нет мусорного ящика. Если файл удалён, его уже не восстановишь.
 
=== Распространённые каталоги ===