Лекція 17. Що таке файл
Лекція 17. Що таке файл
Section titled “Лекція 17. Що таке файл”Рівень 4: Хранитель файлів
Марко, сьогодні ми не просто вивчимо новий термін — ми відкриємо ще один шар того, як насправді працює комп’ютер.
Що ми сьогодні розкриємо
Section titled “Що ми сьогодні розкриємо”- перестати сприймати файл лише як іконку
- зрозуміти файл як дані плюс метадані та місце у файловій системі
- дослідити типи файлів командою
file
Зв’язок з попередніми лекціями
Section titled “Зв’язок з попередніми лекціями”У цій лекції ми використаємо знання про байти з лекції 3 та про збереження даних із лекції 11, щоб зрозуміти, що таке файл.
Файл — контейнер байтів
Section titled “Файл — контейнер байтів”Коли ти бачиш photo.jpg у файловому менеджері, інтерфейс показує красиву іконку. Але для системи файл — передусім послідовність байтів, яку можна прочитати за певними правилами.
До файлу також прив’язані метадані: ім’я, розмір, час зміни, права доступу та інша службова інформація. Тобто «файл» — це не лише його вміст.
Ім’я допомагає людині, вміст — програмі
Section titled “Ім’я допомагає людині, вміст — програмі”Ім’я homework.txt зручне для нас, але програма не повинна довіряти лише назві. Вміст може не відповідати розширенню. Саме тому Linux має інструмент file, який намагається визначити тип за вмістом та сигнатурами.
Файл живе у файловій системі
Section titled “Файл живе у файловій системі”Щоб знайти файл, система використовує шлях. Поки що достатньо пам’ятати: файл має місце у структурі папок. У лекції 19 ми побудуємо повну карту Linux-шляхів.
Приклади
Section titled “Приклади”Приклад 1
Section titled “Приклад 1”Текстовий файл може містити байти UTF‑8, які ми вже вчили. Картинка — байти формату PNG/JPEG. Python-файл — теж текстові байти, але ми тлумачимо їх як код.
Приклад 2
Section titled “Приклад 2”Два файли можуть мати однаковий розмір, але зовсім різний зміст — наприклад текст і невелике зображення.
Приклад 3
Section titled “Приклад 3”Команда file lecture-17.md зазвичай скаже, що це текстовий файл, а file image.png — що це PNG-зображення.
Linux-лабораторія: подивимося на файли без магії
Section titled “Linux-лабораторія: подивимося на файли без магії”Створи навчальну папку й кілька безпечних файлів:
mkdir -p ~/marko-lab/filescd ~/marko-lab/filesprintf 'Hello, Marko!' > hello.txtprintf 'print("hi")' > program.pyfile hello.txtfile program.pyls -lls -l покаже метадані, а file спробує описати вміст.
Місія для Марка
Section titled “Місія для Марка”Виконай місію по черзі. Якщо щось не виходить — спочатку перечитай приклад вище й спробуй знайти, на якому кроці результат відрізняється.
- виконай лабораторію у
~/marko-lab/files - додай файл
number.txtіз числом1010і перевір його черезfile - порівняй розміри трьох файлів через
ls -l - поясни, чому Python-файл є одночасно текстовим файлом і програмним кодом
- назви щонайменше три метадані файлу, крім його вмісту
Перевір себе
Section titled “Перевір себе”- Що фізично зберігається всередині файлу?
- Чи є ім’я файлу частиною його байтового вмісту?
- Що робить команда
file? - Які метадані може мати файл?
- Чому іконка у файловому менеджері — лише представлення?
Терміни однією фразою
Section titled “Терміни однією фразою”- Файл — контейнер байтів, у якого є вміст, ім’я та метадані.
- Метадані — дані про дані: ім’я, розмір, час зміни, права доступу.
- Розширення — частина імені після крапки (
.txt,.py); підказка, а не гарантія формату. - Шлях — маршрут до файлу в дереві папок.
- Файлова система — структура, яка організовує файли та каталоги.
file— команда, що намагається визначити тип файлу за його вмістом.
Чек-лист перед наступною лекцією
Section titled “Чек-лист перед наступною лекцією”- Чи можеш ти пояснити, що таке метадані файлу?
- Чи знаєш ти, що таке розширення файлів та команда
file? - Чи розумієш ти, навіщо розрізняти типи файлів?
Що потрібно винести з лекції
Section titled “Що потрібно винести з лекції”- файл містить байти, але має також ім’я та метадані
- розширення корисне, але не є гарантією реального формату
- Linux дозволяє досліджувати файли інструментами
fileіls
Хакерський принцип: не запам’ятовуй магічні слова. Намагайся пояснити своїми словами, що відбулося і чому.