В Linux як і в інших операційних системах, треба розрізняти коротке та повне імена файлів. Повне ім”я файлу відображає розташування файлу у файловій системі – абсолютне або відносне. Ім”я файлу (коротке) – це послідовність букв, цифр та деяких розділових знаків. Ця послідовність не повинна містити пробіли або інші символи, що використовуються як розділювачі полів (delimiters). Наприклад назва файлу johns.letter – це коректна назва, а назва johns letter – некоректна, так як містить пробіл. У назвах файлів не дозволяється використовувати деякі службові символи, які мають спеціальне значення для інтерпретатора команд системи:
! @ # $ % ^ & * ( ) [ ] { } ' " \ / | ; < >
Особливу роль відіграє символ / , який використовують як розділювач у шляхах файлів. Існує можливість використовувати в іменах файлів і „заборонені” символи, але тоді треба брати ім”я файлу у лапки, наприклад
“! Johns Letter” . Але при цьому морже ускладнитися використання цього файлу програмами, а також його використання в інших ОС.
Примітка: у деяких дистрибутивах Linux обмеження на використання спеціальних символів в іменах файлів в значній мірі подолано. Водночас, з метою збереження переносимості програм рекомендується дотримуватися згаданих вище обмежень.і
Перші версії UNIX, з яких виводится і Linux, мали обмеження на довжину файлу у 14 символів. В Linux це обмеження знято – імена файлів можуть мати до 256 символів. Деякі з існуючих версій UNIX (наприклад BSD), дозволяють викуористовувати імена довжиною до 64 символів, але тільки перші 14 з них є значущими. Для забезпечення сумісності між операційними системами рекомендується обмежити імена файлів 14 символами.
Повне ім”я (шлях) файлу може мати необмежену кількість символів.
В Linux файли не існують самі по собі, вони обов”язково повинні міститися в якомусь каталозі. Найвищий ієрархічний рівень у системі каталогів називається коріневим (root) та позначається знаком /. Якщо файл носит ім”я minny, та розташований у кореневому каталозі, то його абсолютний шлях буде /minny.
Файлі користувачів розміщуються в одному з підкаталогів кореневого каталогу з ім”ям Home. Для кожного з користувачів створюють окремий підкаталог з ім”ям користувача. Наприклад, якщо в системі існує користувач minny, то іі файли будуть знаходитися у каталозі /home/minny. Абсолютне ім”я файлу вказує повний шлях до файлу починаючи з кореневого каталогу. Наприклад, таким іменем може бути /home/minny/minnys.file.
Поряд з абсолютним іменем існує і відносне ім”я, яке задається відносно біжучого каталогу. Наприклад, якщо користувач minny знаходитьься у своєму долмашньомук каталогу /home/minny, то відносним іменем файлу буде minnys.file. Для того, щоб визначити який каталог є біжучим, можна скористатися командою pwd (print working directory). Визначити біжучий каталог також можна якщо вивести на екран значення змінної оточення $pwd командою echo $pwd
При завданні відносного імені файла можна використовувати два знаки, що мають спеціальне значення. Це
. (окрема крапка) – означає біжучий каталог,
.. (дві крапки) – означає батьківський каталог для біжучого
Наприклад, якщо біжучий каталог /home/minny, то каталог з абсолютни ім”ям /minny можна задати таки відносним ім”ям: ../../minny. Знак біжучого каталогу – окрема крапка- буває корисним, наприклад, підчас переміщення файлу. Для того, щоб перенести каталог /copper у біжучий каталог, використовують команду
mv /copper minny
Цю ж операцію можна виконати і інакше:
mv /copper .
де знак . використовується для позначення біжучого каталогу.
Більшість команд Linux працюють з повними іменами файлів. Але найчастіше доводиьтся виконувати операції над файлами з біжучого каталогу. При цьому всі відносні імена розглядаються відносно біжучого каталогу.
Каталоги є різновидом файлів. Каталогів іменують по тих же правилах, що й файли. На відміну від деяких ОС, в Linux немає поняття логічного диску позначеного літерою. Всі файли, навіть фізично розміщені на різних дисках, логічно подані як складова частина кореневої файлової системи.
Визначено чотири головних типів файлів: звичайний файл, каталог, посилання та спеціальний файл. Кожен з тих типів, крім каталогів, має декілька підтипів.
Для того, щоб визначити тип файлу, використовуйте команду file. Ця команда дозволяє визначити, чи є файл виконувальним, текстовим, чи містить інші дані. Команда file має такий синтаксис:
file [-vczl] [-f namefile] [-m magicfile] filelist
Де:
Аргумент
| Опис
|
-с
| Виводить «магічний» файл /usr/lib/magic, що містиь заголовки двійкових файлів для їх коректної ідентифікації. Цей аргумент часто викоритстовують разом з -m для відлагодження нового файлу перед його інсталяцією
|
-z
| Аналізує зміст стиснутого файлу, намагаючись визначити його тип
|
-L
| Працює з символьними посиланнями
|
-f namefile
| Вказує програмі, що список файлів, тип яких потрібно визначити, знаходиться у текстовому файлі namefile. Такий аргумент зручно використовувати, якщо потрібно визначити тип декількох файлів
|
-m magicfile
| Задає нестандартний «магічний» файл. За замовчуванням використовують /usr/lib/magic
|
filelist
| Список файлів, тип яких потрібно визначити. Назвіи файлів розділені пробілами
|