CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
29.07.2010

Последние комментарии

Нужны ли Linux'у пользователи? (277)
24 Декабрь, 23:02
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 Декабрь, 22:53
Kubuntu Feisty (15)
24 Декабрь, 18:42
Один на один с Windows XP (3758)
24 Декабрь, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Приложения

Заметки :: Блогометки :: Debian Day

file: определите тип неизвестных файлов

http://beshenov.ru

Оригинал: «file: classify unknown files on the console», 29 июня 2008 г.

Вам только что прислали письмо с вложениями без пригодных расширений, поэтому вы не знаете, что с ними делать. Это аудио-файлы? PDF? Что же это?.. Похожая проблема возникает после восстановления файлов, с веб-страницами с возможностью загрузки на сервер, и т. д.

Можете, конечно, присвоить файлу расширение и открыть в подходящем, на ваш взгляд, приложении, но лучше, если с этим разберется компьютер. Как пользователь GNU/Linux, вы, должно быть, уже подумали: «Наверняка для этого есть утилита командной строки». Конечно есть: file Яна Дарвина.

Часто эта утилита устанавливается автоматически, исходя из зависимостей. В любом случае, поможет aptitude install file. file зависит от libmagic — пакета с шаблонами для распознания, так называемыми «волшебными числами».

Пусть есть такая директория с неизвестными файлами:

$ ls -l
total 2152
-rw-r--r-- 1 ccm ccm    4118 2008-03-30 06:32 unknown.0
-rw-r--r-- 1 ccm ccm   10220 2008-05-06 02:23 unknown.1
-rw-r--r-- 1 ccm ccm   12693 2008-05-06 02:23 unknown.2
-rw-r--r-- 1 ccm ccm   25933 2007-10-26 07:41 unknown.3
-rw-r--r-- 1 ccm ccm    2121 2007-10-26 07:41 unknown.4
-rw-r--r-- 1 ccm ccm     185 2007-10-14 20:14 unknown.5
-rw-r--r-- 1 ccm ccm 1189011 2008-05-17 22:37 unknown.6
-rw-r--r-- 1 ccm ccm  824163 2008-02-02 05:02 unknown.7
-rw-r--r-- 1 ccm ccm   82367 2007-09-20 06:18 unknown.8
-rw-r--r-- 1 ccm ccm    8872 2006-04-24 12:43 unknown.9

Теперь мы хотим узнать, что внутри этих черных ящиков. Поэтому просто выполняем «file *»:

$ file *
unknown.0: XML
unknown.1: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
unknown.2: ASCII C program text
unknown.3: PDF document, version 1.4
unknown.4: LaTeX 2e document text
unknown.5: perl script text executable
unknown.6: gzip compressed data, from Unix, last modified: Wed Oct  8 16:27:09 2003
unknown.7: Ogg data, Vorbis audio, stereo, 44100 Hz, ~192003 bps, created by: Xiph.Org libVorbis I (1.0)
unknown.8: PNG image data, 492 x 417, 8-bit/color RGBA, non-interlaced
unknown.9: HTML document text

Вот и всё! Впечатляет, да? file не только различает бинарные и текстовые файлы, но даже пытается определить, какой язык программирования использовался. Это не такое уж волшебство: например, в скрипте ZSH первая строчка — «#!/bin/zsh», PDF-файлы обычно начинаются с «%PDF», и так далее. Это всё шаблоны для распознания.

У file есть опции командной строки, которые делают утилиту еще более полезной. Одна из самых любопытных — -i — печатает вместо описаний MIME-типы. Если вы веб-разработчик и хотите узнать точный тип загруженного файла, то file здорово сбережет время:

$ file -i *
unknown.0: text/xml
unknown.1: application/x-object, not stripped
unknown.2: text/x-c; charset=us-ascii
unknown.3: application/pdf
unknown.4: text/x-tex
unknown.5: application/x-perl
unknown.6: application/x-gzip
unknown.7: application/ogg
unknown.8: image/png
unknown.9: text/html

Чудесно, не так ли? Веб-сервер Apache тоже использует в подобных целях libmagic. Собственно, file — это обертка к libmagic.

file давно есть в Debian и Ubuntu.




Комментарии

Corvinus, Птн 11 Июл 2008 09:49:14:
под оффтопик погу посоветовать TrID http://mark0.net/soft-trid-e.html

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds