Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Типы файлов в Linux

Оригинал: Identifying File types in Linux
Автор: Lubos Rendek
Дата публикации: январь 2013 года
Перевод: А. Кривошей
Дата перевода: июль 2013 г.

1. Введение

При перемещениях по файловой системе Linux вы обязательно столкнетесь с различными типами файлов. Наиболее часто используемые и очевидные - это обычные файлы и директории. Тем не менее операционная система Linux может предложить больше с точки зрения типов файлов, так как она включает еще другие 5 типов файлов. В этой короткой статье мы покажем, как распознавать 7 типов файлов, встречающиеся в Linux.

2. Идентификация типов файлов в Linux

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

$ ls -ld <file name>

Ниже пример вывода этой команды.

$ ls -ld /etc/services 
-rw-r--r-- 1 root root 19281 Feb 14  2012 /etc/services

Команда ls показывает тип файла в кодированном виде как первый символ части вывода, показывающего права доступа. В данном случае это "-", что значит "обычный файл". Важно отметить, что в Linux невозможно изменить тип файла, ошибочно присвоив ему другое расширение. Давайте посмотрим на краткое описание всех семи различных типов файлов в Linux и их идентификаторы для команды ls:

- : обычный файл
d : директория
c : файл символьного устройства
b : файл блочного устройства
s : файл локального сокета
p : именованный канал
l : символическая ссылка

2.1. Обычный файл

Обычный файл - это самый распространенный тип файлов в системе Linux. Он объединяет самые различные виды файлов, такие как текст, изображения, бинарные файлы, библиотеки и т.д. Обычный файл вы можете создать с помощью команды:

$ touch linuxcareer.com
$ ls -ld linuxcareer.com 
-rw-rw-r-- 1 lubos lubos 0 Jan 10 12:52 linuxcareer.com

Первый символ в выводе команды ls, в данном случае "-", представляет собой код идентификации для обычного файла. Для удаления обычного файла используется команда:

$ rm linuxcareer.com

2.2. Директория

Директория - это второй самый распространенный тип файлов в Linux. Директории могут быть созданы с помощью команды mkdir:

$ mkdir FileTypes
$ ls -ld FileTypes/
drwxrwxr-x 2 lubos lubos 4096 Jan 10 13:14 FileTypes/

Как уже говорилось ранее, директории идентифицируются по символу "d" в выводе команды ls. Для удаления директорий используется команда rmdir.

$ rmdir FileTypes

Если вы попытаетесь с помощью команды rmdir удалить директорию, в которой есть файлы, то получите сообщение об ошибке:

rmdir: failed to remove 'FileTypes/': Directory not empty

В этом случае необходимо использовать команду:

$ rm -r FileTypes/

2.3. Символьное устройство

Файлы символьных и блочных устройств позволяют пользователям и программам обмениваться данными с периферийными устройствами, например:

$ ls -ld /dev/vmmon 
crw------- 1 root root 10, 165 Jan  4 10:13 /dev/vmmon

В данном случае символьное устройство - это модуль vmware.

2.4. Блочное устройство

Блочные устройства похожи на символьные. Это главным образом такие устройства как жесткие диски, память и т.д.

$ ls -ld /dev/sda
brw-rw---- 1 root disk 8, 0 Jan  4 10:12 /dev/sda

2.5. Сокеты локального домена

Сокеты локального домена используются для обмена данными между процессами. В основном они используются такими службами, как X windows, syslog и т.д.

$ ls -ld /dev/log
srw-rw-rw- 1 root root 0 Jan  4 10:13 /dev/log

Сокеты могут быть созданы с помощью системного вызова socket, а удалены с помощью системной функции unlink или команд rm.

2.6. Именованные каналы

Как и локальные сокеты, именованные каналы позволяют осуществлять обмен данными между локальными процессами. Они могут быть созданы с помощью команды mknod, а удалены с помощью команды rm.

2.7. Символические ссылки

С посощью символических ссылок администратор может присвоить одному файлу или директории несколько идентичностей. Символическая ссылка является указателем на оригинальный файл. Существует два типа символических ссылок:
- жесткие ссылки;
- мягкие ссылки.

Различие между твердыми и мягкими ссылками в том, что мягкие ссылки ссылаются на имя файла, в то время как жесткие ссылки прямо ссылаются на оригинальный файл. Кроме того, жесткие ссылки не работают с файлами, расположенными на других разделах или файловых системах. Для создания мягкой символической ссылки используется команда:

$ echo file1 > file1
$ ln -s file1 file2
$ cat file2 
file1
$ ls -ld file2 
lrwxrwxrwx 1 lubos lubos 5 Jan 10 14:42 file2 -> file1

Для удаления символической ссылки мы можем использовать команды unlink или rm.

3. Заключение

Как системный администратор, вы будете в основном работать с обычными файлами, директориями, блочными или символьными устройствами. Программист также часто имеет дело с локальными сокетами и именованными каналами.