FILE(1) | General Commands Manual | FILE(1) |
НАЗВА¶
file
—
визначення
типу
файла
КОРОТКИЙ ОПИС¶
file
[-bcdEhiklLNnprsSvzZ0
]
[--apple
] [--exclude-quiet
]
[--extension
]
[--mime-encoding
]
[--mime-type
]
[-e
назва_тесту]
[-F
роздільник]
[-f
файл_назв]
[-m
файли_контрольних_послідовностей]
[-P
назва=значення] file
... file
-C
[-m
файли_контрольних_послідовностей]
file
[--help
]
ОПИС¶
Цю
сторінку
підручника
присвячено
документації
щодо
версії 5.45
програми
file
.
file
виконує
тестування
кожного
аргументу
у спробах
його
класифікувати.
Передбачено
три набори
перевірок,
які буде
виконано у
такому
порядку:
перевірки
файлової
системи,
перевірки
контрольних
послідовностей
і
перевірки
мови.
Перша
пройдена
перевірка
призведе
до
виведення
типу
файла.
Виведені
дані щодо
типу,
зазвичай,
містять
одне з
таких слів:
text
(файл
містить
лише
друковані
символи і
деякі
типові
контрольні
символи,
його,
ймовірно,
безпечно
читати у
терміналі
ASCII
),
executable
(файл
містить
результати
компіляції
програми у
формі, яку
може
обробляти
ядро UNIX або
іншої
системи)
або
data
для усього
іншого
(дані,
зазвичай, є
“двійковими”
або не
призначеними
для друку).
Виключеннями
є файли у
різних
знаних
форматах
даних
(файли ядра,
архіви tar),
які
містять
двійкові
дані. При
внесенні
змін до
файлів
контрольних
послідовностей
або самої
програми,
переконайтеся,
що
збережено
ці ключові
слова.
Робота
користувачів
залежить
від
відомостей
щодо того,
що для усіх
придатних
до читання
файлів у
каталозі
буде
виведено
слово “text”.
Не робіть
так, як
зробили у
Берклі, і не
міняйте “shell
commands text” на “shell script”.
Перевірки
файлової
системи
засновано
на
вивченні
даних, які
повернуто
системним
викликом
stat(2).
Програма
перевіряє,
чи не є файл
порожнім і
чи не є він
певним
чином
спеціальним
файлом. Усі
відомі
типи
файлів, які
відповідають
системі, у
якій ви
працюєте
(сокети,
символічні
посилання
або
іменовані
канали (FIFO) у
тих
системах,
де їх
реалізовано),
буде
розпізнано,
якщо їх
визначено
у
загальносистемному
файлі
заголовків
<sys/stat.h>
.
Перевірки
контрольних
послідовностей
використовують
для
визначення
форматів
для файлів
із даними у
певному
фіксованому
форматі.
Яскравим
прикладом
цього є
двійкові
виконувані
файли
(зібрані
програми),
подібні до
a.out
,
формат
яких
визначено
у <elf.h>
,
<a.out.h>
і,
можливо,
<exec.h>
у
стандартному
каталозі include.
У цих
файлах у
певному
місці на
початку
файла
зберігається
“контрольне
число”, яке
вказує
операційній
системі UNIX,
що файл є
двійковим
виконуваним
файлом і
вказує тип,
один із
декількох.
Концепцію
“контрольного
числа”
було
розширено
на файли
даних. За її
допомогою
може бути
описано
будь-який
файл із
певним
інваріантним
ідентифікатором
із
невеликим
фіксованим
відступом
у даних
файла. Дані
для
ідентифікації
цих файлів
буде
прочитано
із
зібраних
файлів
контрольних
послідовностей
/usr/share/file/magic.mgc або
файлів у
каталозі
/usr/share/file/magic,
якщо
зібраного
файла не
існує. Крім
того, якщо
існує
$HOME/.magic.mgc або
$HOME/.magic, його
буде
використано
з вищим
пріоритетом
над
загальносистемними
файлами
контрольних
послідовностей.
Якщо файл
не
відповідає
жодному із
записів у
файлі
контрольних
послідовностей,
програма
спробує
визначити,
чи не є він
текстовим
файлом.
Кодування
ASCII, ISO-8859-x, 8-бітові
кодування
поза ISO поза ASCII
(подібні до
використаних
у системах
Macintosh та IBM PC),
кодування
UTF-8 Unicode,
кодування
UTF-16 Unicode та
набори
символів EBCDIC
може бути
визначено
за різними
діапазонами
та
послідовностями
байтів, на
основі
яких
створюється
друкований
текст для
кожного з
наборів.
Якщо файл
проходить
будь-яку з
перевірок,
програма
повідомить
про набір
символів
(кодування).
Файли ASCII, ISO-8859-x, UTF-8, і
розширення
ASCII буде
ідентифіковано
як “text”,
оскільки
їх,
здебільшого,
можна
читати
майже у
будь-якому
терміналі;
UTF-16 і EBCDIC є лише
“character data”,
оскільки,
хоча вони
містять
текст, це
текст, який
потребує
трансляції
перед
читанням.
Крім того,
file
спробує
визначити
інші
характеристики
файлів
текстового
типу. Якщо
рядки
файла
завершуються
на CR, CRLF або NEL,
замість
стандартного
для Unix LF,
програма
про це
повідомить.
Також буде
ідентифіковано
файли, які
містять
вбудовані
екрановані
послідовності
та
перекреслення.
Після
визначення
file
набору
символів,
який
використано
у файлі
текстового
типу,
програма
спробує
визначити,
якою мовою
написано
файл. У
перевірках
мови буде
виконано
пошук
певних
рядків
(порівняйте
з <names.h>
),
які може
бути
використано
будь-де у
перших
декількох
блоках
файла.
Наприклад,
ключове
слово
.br
вказує на
високу
ймовірність
того, що це
файл
вхідних
даних troff(1),
так само, як
ключове
слово
struct
вказує на
програму
мовою C. Ці
перевірки
менш
надійні за
попередні
дві групи,
тому їх
виконують
останніми.
Підпрограми
перевірки
мов також
виконують
визначення
файлів із
сумішшю
даних
(зокрема
архівів
tar(1) та
файлів JSON).
Усі файли, для яких не вдасться визначити набір символів із вказаного вище переліку, буде класифіковано як “data”.
ПАРАМЕТРИ¶
--apple
- Наказує
file
вивести тип файла і код засобу створення як такі, що використані у давніх версіях MacOS. Код складається з восьми літер. Перші описують тип файла, а останні — засіб створення. Цей параметр належним чином працює лише для форматів файлів, у яких визначено виведення у стилі apple. -b
,--brief
- Не дописувати назви файлів перед виведеними рядками (скорочений режим).
-C
,--compile
- Записати файл виведення magic.mgc, який містить попередньо оброблену версію файла або каталогу контрольних послідовностей.
-c
,--checking-printout
- Наказує
вивести
табуляцію
перевірки
обробленої
форми
файла
контрольних
послідовностей.
Цей
параметр,
зазвичай,
використовують
у
поєднанні
з
параметром
-m
для діагностики нового файла контрольних послідовностей до його встановлення. -d
- Виводить внутрішні діагностичні дані до stderr.
-E
- Наказує програмі при помилках файлової системи (не знайдено файла тощо), замість звичайної обробки виведення помилки, як цього вимагає POSIX, і подальшого виконання завдань, видати повідомлення про помилку і завершити роботу.
-e
,--exclude
назва_тесту- Виключити
перевірку
із назвою
назва_тесту
зі списку
перевірок,
які
призначено
для
визначення
типу файла.
Коректними
назвами
перевірок
є такі:
- apptype
EMX
тип програми (лише у EMX).- ascii
- Різноманітні типи текстових файлів (у цій перевірці буде зроблено спробу визначити кодування тексту, незалежно від значення параметра ‘encoding’).
- encoding
- Різні кодування тексту для програмних перевірок на контрольні послідовності.
- tokens
- Ігноровано, для зворотної сумісності.
- cdf
- Виводити подробиці щодо складених файлів документів (CDF).
- compress
- Перевіряти стиснені файли і заглядати до них.
- csv
- Перевіряти файли значень, які відокремлено комами (CSV).
- elf
- Виводить подробиці щодо файла ELF, якщо увімкнено перевірки контрольних послідовностей і виявлено контрольну послідовність elf.
- json
- Інспектує файли JSON (RFC-7159) шляхом перевірки їх на сумісність.
- soft
- Звернутися до файлів контрольних послідовностей.
- simh
- Інспектує файли стрічок SIMH.
- tar
- Інспектує файли tar шляхом перевірки контрольних сум 512 байтів у заголовка tar. Виключення цієї перевірки може надати докладніший опис вмісту, оскільки буде використано спосіб тестування за контрольними послідовностями.
- text
- Синонім до ‘ascii’.
--exclude-quiet
- Подібний
до
--exclude
, але ігнорує перевірки, про які не відомоfile
. Призначено для сумісності із застарілими версіямиfile
. --extension
- Вивести список відокремлених символом похилої риски коректних суфіксів назви для виявленого типу файлів.
-F
,--separator
роздільник- Використати вказаний рядок як роздільник між назвою файла і повернутим для файла результатом. Типовим є ‘:’.
-f
,--files-from
файл_назв- Прочитати
назви
файлів, які
слід
інспектувати,
з
файла_назв
(по одному
файлу на
рядок)
перед
списком
аргументів.
Має бути
вказано
або
файл_назв
або
принаймні
один
аргумент
із назвою
файла. Якщо
треба
перевірити
дані зі
стандартного
джерела
вхідних
даних,
скористайтеся
аргументом
‘-’ замість
назви
файлів.
Будь ласка,
зауважте,
що
файл_назв
буде
розгорнуто
і включені
до нього
назви
файлів
буде
оброблено
одразу у
місці, де
вказано
цей
параметр, і
перед
обробкою
інших
параметрів.
Це надає
змогу
обробляти
декілька
писків
файлів із
різними
аргументами
командного
рядка в
одному
виклику
file
invocation. Таким чином, якщо ви хочете визначити роздільник, вам слід зробити це до визначення списку файлів, якось так: “-F
@-f
файл_назв”, а не так: “-f
файл_назв-F
@”. -h
,--no-dereference
- Використання
цього
параметра
призведе
до того, що
програма
не
переходитиме
за
символічними
посиланнями
(у
системах,
де
передбачено
підтримку
символічних
посилань).
Це типова
поведінка,
якщо не
встановлено
змінну
середовища
POSIXLY_CORRECT
. -i
,--mime
- Наказує
file
виводити рядки типів MIME, а не традиційніші зручні для читання записи. Отже, у такому режимі програма може виводити ‘text/plain; charset=us-ascii’ замість “ASCII text”. --mime-type
,--mime-encoding
- Подібний
до
-i
, але буде виведено лише вказані елементи. -k
,--keep-going
- Не
зупинятися
на першому
відповіднику,
продовжувати
обробку.
Перед
наступними
відповідниками
буде
додано
рядок ‘\012- ’.
(Якщо ви
хочете
додати
розрив
рядка,
скористайтеся
параметром
-r
.) Взірець з контрольної послідовності, який матиме найвищу потужність (див. параметр-l
), буде виведено першим. -l
,--list
- Показує
список
взірців та
їхню
потужність
з
упорядковування
за
спаданням
потужності
magic(5), яку
буде
використано
для
встановлення
відповідності
(див. також
параметр
-k
). -L
,--dereference
- Використання
цього
параметра
призведе
до того, що
програма
переходитиме
за
символічними
посиланнями,
як при
використанні
подібного
параметра
у ls(1) (у
системах,
де
передбачено
підтримку
символічних
посилань).
Це типова
поведінка,
якщо
встановлено
змінну
середовища
POSIXLY_CORRECT
. -m
,--magic-file
файли_контрольних_послідовностей- Вказати альтернативний список файлів і каталогів, у яких містяться дані контрольних послідовностей. Це може бути єдиний запис або список записів, які відокремлено двокрапками. Якщо поряд із файлом або каталогом буде виявлено зібраний файл контрольних послідовностей, буде використано саме його.
-N
,--no-pad
- Не доповнювати назви файлів так, щоб виведені дані було вирівняно.
-n
,--no-buffer
- Примусово очищувати stdout після перевірки кожного з файлів. Корисно, лише якщо виконується перевірка списку файлів. Параметр призначено для використання у програмах, яким потрібне виведення типу файлів з каналу даних.
-p
,--preserve-date
- У системах,
де
передбачено
підтримку
utime(3) або
utimes(2),
намагатися
зберегти
час
доступу до
аналізованих
файлів, щоб
змусити
систему
вважати, що
file
ніколи не виконував їхнє читання. -P
,--parameter
назва=значення- Встановити
різні
обмеження
параметрів.
Назва Типове Пояснення bytes
1M максимальна кількість файлів, які слід прочитати з файла elf_notes
256 максимальна оброблена кількість нотаток ELF elf_phnum
2K максимальна оброблена кількість розділів програми ELF elf_shnum
32K максимальна кількість оброблених розділів ELF elf_shsize
128MB максимальний оброблений розмір розділу ELF encoding
65K максимальна кількість байтів, які слід вивчити для визначення кодування indir
50 обмеження рекурсії для опосередкованих контрольних послідовностей name
50 використовувати обмеження лічильника для контрольних назви/використання regex
8K обмеження на довжину для пошуків за формальним виразом -r
,--raw
- Не
перетворювати
непридатні
до друку
символи на
\ooo. Зазвичай,
file
перетворює непридатні до друку символи на їхні вісімкові представлення. -s
,--special-files
- Зазвичай,
file
намагається читати і визначати тип файлів-аргументів, про які stat(2) повідомляє, як про звичайні файли. Таким чином, програма намагається запобігти читанню спеціальних файлів, яке може мати небажані наслідки. Якщо вказано параметр-s
,file
також прочитає файли аргументів, які є блоковим або символьним спеціальними файлами. Це корисно для визначення типів файлових систем даних на необроблених розділах диска, оскільки такі розділи є блоковими спеціальними файлами. Використання цього параметра також наказуєfile
не зважати на розмір файла, про який повідомляє stat(2), оскільки у деяких системах ця функція повідомляє про нульовий розмір для необроблених розділів диска. -S
,--no-sandbox
- У системах,
де
доступною
є libseccomp
(https://github.com/seccomp/libseccomp),
параметр
-S
вимикає режим пісочниці, який типово увімкнено. Цей параметр потрібенfile
для виконання зовнішніх програм для розпаковування, тобто якщо вказано параметр-z
і вбудовані засоби розпаковування є недоступними. У системах, де пісочниця є недоступною, цей параметр ні на що не вплине. -v
,--version
- Вивести дані щодо версії програми і завершити роботу.
-z
,--uncompress
- Намагатися зазирати до стиснених файлів.
-Z
,--uncompress-noreport
- Намагатися зазирати до стиснених файлів, але звітувати лише про вміст, а не про стискання.
-0
,--print0
- Вивести
нуль-символ
‘\0’ після
назви
файла.
Добре для
використання
cut(1) для
виведених
даних. Не
впливає на
роздільник,
який все
одно буде
виведено.
Якщо цей параметр вказано декілька разів,
file
виведе просто назву файла, потім NUL-символ, потім опис (або ERROR: text), або другий NUL-символ для кожного запису. --help
- Вивести короткий текст довідки і завершити роботу.
СЕРЕДОВИЩЕ¶
Змінною
середовища
MAGIC
можна
скористатися
для
встановлення
назви
типового
файла
контрольних
послідовностей.
Якщо
встановлено
значення
цієї
змінної,
file
не
намагатиметься
відкрити
$HOME/.magic. file
додає
“.mgc” до
значення
цієї
змінної,
якщо це
потрібно.
Змінна
середовища
POSIXLY_CORRECT
керує тим (у
системах,
де
передбачено
підтримку
символічних
посилань),
чи
намагатиметься
file
переходити
за
символічними
посиланнями.
Якщо
встановлено,
file
переходитиме
за
символічними
посиланнями,
якщо ні — не
переходитиме.
Керувати
цим можна
також за
допомогою
параметрів
-L
і -h
.
ФАЙЛИ¶
- /usr/share/file/magic.mgc
- Типовий зібраний список контрольних послідовностей.
- /usr/share/file/magic
- Каталог, у якому містяться типові файли контрольних послідовностей.
СТАН ВИХОДУ¶
file
завершить
роботу зі
станом
виходу 0
,
якщо дію
було
виконано
успішно,
або зі
станом
>0
, якщо
сталася
помилка.
Вказані
нижче
помилки
призводитимуть
до
виведення
діагностичних
повідомлень,
але не
впливатимуть
на код
виходу
програми
(як цього
вимагає POSIX),
якщо не
вказано
параметра
-E
:
- Файл не може бути знайдено
- Немає прав доступу до читання файла
- Тип файла не вдалося визначити
ПРИКЛАДИ¶
$ file file.c file /dev/{wd0a,hda} file.c: C program text file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped /dev/wd0a: block special (0/0) /dev/hda: block special (3/0) $ file -s /dev/wd0{b,d} /dev/wd0b: data /dev/wd0d: x86 boot sector $ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10} /dev/hda: x86 boot sector /dev/hda1: Linux/i386 ext2 filesystem /dev/hda2: x86 boot sector /dev/hda3: x86 boot sector, extended partition table /dev/hda4: Linux/i386 ext2 filesystem /dev/hda5: Linux/i386 swap file /dev/hda6: Linux/i386 swap file /dev/hda7: Linux/i386 swap file /dev/hda8: Linux/i386 swap file /dev/hda9: empty /dev/hda10: empty $ file -i file.c file /dev/{wd0a,hda} file.c: text/x-c file: application/x-executable /dev/hda: application/x-not-regular-file /dev/wd0a: application/x-not-regular-file
ДИВ. ТАКОЖ¶
СУМІСНІСТЬ ІЗ СТАНДАРТАМИ¶
Ми вважаємо, що програма перевищує System V Interface Definition of FILE(CMD), наскільки точно ми можемо визначити з наведених там нечітких визначень. Поведінка програми здебільшого сумісна з програмою з System V з такою ж назвою. Однак ця версія знає більше контрольних послідовностей, тож вона у багатьох випадках надасть інший вивід (хоч може й точніший).
Одна значна різниця між цією версією й System V це те, що ця версія опрацьовує пробільні символи, як розділювач, тож пробіли в рядках шаблонів будуть екрановані. Наприклад,
>10 string language impress (imPRESS data)
у наявному файлі контрольних послідовностей мало б бути змінено на
>10 string language\ impress (imPRESS data)
Крім того, у цій версії, якщо у рядку взірця міститься символ зворотної похилої риски, його слід екранувати. Приклад:
0 string \begindata Andrew Toolkit document
у наявному файлі контрольних послідовностей мало б бути змінено на
0 string \\begindata Andrew Toolkit document
Випуски SunOS 3.2
й пізніше
від Sun Microsystems
містять
команду
file
, що є
похідною
від
програми з
System V, але з
деякими
розширеннями.
Ця версія
відрізняється
від версії
Sun's лише
незначними
деталями.
Вона
містить
розширення
оператора
‘&’, що
використовується,
наприклад,
як
>16 long&0x7fffffff >0 not stripped
БЕЗПЕКА¶
На
системах з
libseccomp (https://github.com/seccomp/libseccomp),
file
примусово
встановлює
обмеження
системних
викликів
лише на ті,
що
необхідні
для
виконання
програми.
Це
примусове
встановлення
не надає
жодних
переваг з
погляду
безпеки
коли file
запитують
розтиснути
вхідні
файли за
допомогою
зовнішніх
програм за
допомогою
параметра
-z
. Щоб
дозволити
виконання
зовнішніх
розпакувальників,
потрібно
вимкнути
пісочницю
за
допомогою
параметра
-S
.
КАТАЛОГ КОНТРОЛЬНИХ ПОСЛІДОВНОСТЕЙ¶
Записи файла контрольних послідовностей було зібрано з різних джерел, в основному, USENET, і надіслано різними авторами. Christos Zoulas (адресу наведено нижче) збиратиме додаткові та виправлені записи файла контрольних послідовностей. Періодично поширюватимуться нові версії збірки записів файлів контрольних послідовностей.
Порядок
записів у
файлі
контрольних
послідовностей
має
значення.
Залежно
від
використаної
вами
системи,
порядок, у
якому їх
зібрано,
може бути
неправильним.
Якщо ваша
стара
програма
file
використовує
файл
контрольних
послідовностей,
збережіть
старий
файл з
метою
порівняння
(перейменуйте
його на
/usr/share/file/magic.orig).
ЖУРНАЛ¶
Команда
file
була
частиною
усіх UNIX з
часу
принаймні
Research Version 4
(сторінка
підручника
датується
листопадом
1973 року). У
версії для
System V було
впроваджено
одну
значну
зміну:
зовнішній
список
типів
контрольних
послідовностей.
Це дещо
уповільнило
роботу
програми,
але
зробило її
набагато
гнучкішою.
Цю програму, засновану на версії для System V, було написано Ian Darwin ⟨ian@darwinsys.com⟩ без використання будь-чийого початкового коду.
Код було суттєво переписано John Gilmore, що зробило його кращим, ніж у першій версії. Geoff Collyer виявив декілька невідповідностей та надав додаткові записи для файла контрольних послідовностей. Внесок Rob McMahon, ⟨cudcv@warwick.ac.uk⟩, 1989 рік, полягає у впровадженні оператора ‘&’.
Guy Harris, ⟨guy@netapp.com⟩, вносив багато змін від 1993 рок і аж до сучасного стану програми.
Основну частину завдань з розробки і супроводу з 1990 року до поточного моменту виконує Christos Zoulas ⟨christos@astron.com⟩.
Змінено Chris
Lowth ⟨chris@lowth.com⟩, 2000 рік:
реалізовано
обробку
параметра
-i
для
виведення
рядків
типів MIME,
використання
альтернативного
файла
контрольних
послідовностей
та змінено
внутрішню
логіку.
Змінено Eric Fischer ⟨enf@pobox.com⟩, липень 2000 року, для визначення кодів символів і спроби визначити мови у файлах, відмінних від ASCII.
Змінено Reuben Thomas ⟨rrt@sc3d.org⟩, 2007-2011, для удосконалення підтримки MIME, об'єднано контрольні послідовності MIME і не-MIME, реалізовано підтримку каталогів, а також файлів контрольних послідовностей, виправлено багато вад, оновлено і виправлено багато контрольних послідовностей, удосконалено систему збирання, удосконалено документацію і переписано прив'язки до Python на чистому Python.
Список учасників розробки для каталогу ‘контрольних послідовностей’ (файлів magic) є надто довгим для включення тут. Ви самі знаєте про свій внесок. Дякуємо вам. Багато учасників розробки наведено у списках у файлах початкових кодів.
ЮРИДИЧНІ ЗАУВАЖЕННЯ¶
Авторські права належать Ian F. Darwin, Торонто, Канада, 1986-1999. Захищено стандартними авторськими правами Berkeley Software Distribution; див. файл COPYING у дистрибутиві початкового коду.
Файли tar.h і is_tar.c було написано John Gilmore для його програми tar(1) з відкритим доступом (public domain). Цей файл не підлягає ліцензуванню за вказаною вище ліцензією.
ВАДИ¶
Будь ласка, повідомляйте про вади і надсилайте латки до системи стеження за вадами за адресою https://bugs.astron.com/ або до списку листування за адресою ⟨file@astron.com⟩ (спочатку відвідайте https://mailman.astron.com/mailman/listinfo/file, щоб підписатися).
ЗАВДАННЯ¶
Виправити виведення даних так, щоб зникла потреба у перевірках прапорців MIME і APPLE в усьому коді, а виведення відбувалося лише в одному місці. Це потребує зміни компонування. Пропозиція: скласти список можливих позицій виведення, потім вибрати останнє (сподіваємося, найспецифічніше) значення наприкінці, або скористатися типовим, якщо список порожній. Зміна не повинне вплинути на швидкодію аналізу.
Обробка
MAGIC_CONTINUE
і
виведення
\012- між
записами є
незграбною
і
ускладненою;
переписати
і
централізувати.
Частину логіки кодування жорстко вписано до encoding.c. Її можна пересунути до файлів контрольних послідовностей, якщо використовувати позначення !:набір_символів.
Продовжити виправляти усі вади в обробці контрольних послідовностей. Див. систему стеження за вадами Debian, щоб дізнатися про це більше.
Зберігати довільно довгі рядки, наприклад, для взірців %s, щоб їх можна було виводити. Виправить ваду Debian 271672. Зробити це можна розміщенням рядків у буфері рядків, збереженням буфера рядків наприкінці файла контрольних послідовностей і перетворенням усіх вказівників на рядки на відносні відступи з буфера рядків.
Додати синтаксичні конструкції для відносних відступі після поточного рівня (вада Debian 466037).
Зробити так, щоб file -ki працювало, тобто можна було вказати декілька типів MIME.
Додати бібліотеку zip, щоб можна було увійти до документів Office2007 для виведення додаткових подробиць щодо їхнього вмісту.
Додати параметр для виведення адрес для джерел описів файлів.
Поєднати пошуки скриптів та додати спосіб прив'язування назв виконуваних файлів до типів MIME (наприклад, мати значення контрольної суми для !:mime, яке спричинятиме пошук рядка-результату у таблиці). Таким чином буде усунено проблему із повторним додаванням контрольної послідовності для кожного нового інтерпретатора бінарних позначок.
Якщо доступним є дескриптор файла, ми можемо пропустити і скоригувати буфер, замість складного керування буфером, яке виконується зараз.
Виправити “name” і “use” для перевірки сумісності під час збирання (дублювання “name”, “use”, що вказує на невизначене “name” ). Зробити “name” / “use” ефективнішим шляхом зберігання упорядкованого списку назв. Особливий випадок ^ для зміни порядку байтів в обробнику так, щоб не було потреби в екранування, і документування нових можливостей.
Якщо
відступи,
які
вказано на
внутрішньому
рівні у
файлі,
перевищують
розмір
буфера
(значення
змінної
HOWMANY
у file.h),
позиціювання
за
відступом
виконано
не буде.
Було б
краще
виконувати
керування
буфером
при
доступності
дескриптора
файла, щоб
можна було
виконувати
позиціювання
у файлі.
Втім, слід
бути
обережними,
оскільки
це може
торкнутися
питань
швидкодії
і безпеки,
оскільки
роботу
програми
може бути
уповільнено
повторними
позиціюваннями.
Маємо підтримку зберігання окремих буферів та відступів з кінця файла, але внутрішнє керування буфером усе ще потребує значної переробки.
ДОСТУПНІСТЬ¶
Ви можете отримати найсвіжішу версію від самого автора з анонімного FTP за адресою ftp.astron.com у каталозі /pub/file/file-X.YZ.tar.gz.
ПЕРЕКЛАД¶
Український переклад цієї сторінки посібника виконано Andriy Rysin <arysin@gmail.com> і Yuri Chornoivan <yurchor@ukr.net>
Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.
Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org
21 травня 2023 року | Linux 6.4.0-150600.23.25-default |