1. Введение
При перемещениях по файловой системе Linux вы обязательно столкнетесь с различными типами файлов. Наиболее часто используемые и очевидные - это обычные файлы и директории. Тем не менее операционная система Linux может предложить больше с точки зрения типов файлов, так как она включает еще другие 5 типов файлов. В этой короткой статье мы покажем, как распознавать 7 типов файлов, встречающиеся в Linux.
2. Идентификация типов файлов в Linux
Для того, чтобы идентифицировать и классифицировать все семь типов файлов, имеющихся в Linux, вам нужно знать всего одну команду:
$ ls -ld
Ниже пример вывода этой команды.
$ 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. Заключение
Как системный администратор, вы будете в основном работать с обычными файлами, директориями, блочными или символьными устройствами. Программист также часто имеет дело с локальными сокетами и именованными каналами.
Оригинал: Identifying File types in Linux
Интересно.
ОтветитьУдалить