Что такое файл и папка: определения простыми словами и основные действия

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

Файл — это именованный набор данных на носителе, с которым операционная система работает как с единым целым: у него есть имя, размер, содержимое и служебные сведения (даты, права). Папка (она же каталог или директория) — это контейнер, который хранит список файлов и других папок и собирает их в дерево. Ниже — имя и расширение, путь в Windows и Linux, атрибуты и права, основные действия мышью и командами.

Файл и папка: в чём разница

Для файловой системы папка — тоже файл особого типа: её содержимое — таблица записей «имя -> где лежат метаданные объекта» (в ext4 запись ссылается на inode, в NTFS — на запись в таблице MFT). Поэтому у папки, как и у файла, есть имя, даты и права, а расширение ей не нужно.

Файл Папка (каталог, директория)
Что хранит Содержимое: текст, картинку, код программы, базу данных Список имён вложенных файлов и папок со ссылками на их метаданные
Что можно делать Открыть, изменить, переименовать, скопировать, переместить, удалить Создать, переименовать, переместить, скопировать или удалить вместе с содержимым, войти внутрь
Есть ли расширение Обычно да: report.docx, main.py Нет (точка в имени допустима, но ничего не значит)
Пример C:\Users\Anna\Documents\report.docx, /home/anna/main.py C:\Users\Anna\Documents, /home/anna

«Папка» (folder) — термин графических интерфейсов, «каталог» и «директория» (directory) — командной строки и документации; это одно и то же. Папка внутри папки — вложенная (подкаталог), на уровень выше — родительская, самая верхняя — корневая: в Windows C:\, в Linux и macOS /.

Имя файла и расширение

Имя файла состоит из основной части и расширения — того, что стоит после последней точки: у photo.jpg расширение jpg, у archive.tar.gzgz. Длина имени ограничена файловой системой: 255 символов в NTFS и 255 байт в ext4 (для кириллицы в UTF-8 это около 127 букв).

Расширение — это соглашение, а не гарантия формата. Оно подсказывает, что внутри и чем открывать, но содержимое от переименования не меняется: photo.jpg, переименованный в photo.png, останется JPEG, и часть программ его не откроет. В Linux расширение почти ничего не решает: file photo.png смотрит на первые байты содержимого и ответит JPEG image data. В Windows расширение определяет, какая программа откроется по двойному щелчку, и в Проводнике оно по умолчанию скрыто — см. раздел про ошибки.

Два отличия систем, на которых регулярно спотыкаются:

  • Регистр. В Linux Report.txt и report.txt — два разных файла в одной папке. В Windows на NTFS регистр запоминается, но не различается: второй файл создать не получится, а REPORT.TXT откроет тот же файл. macOS на APFS по умолчанию ведёт себя как Windows.
  • Запрещённые символы. В Windows нельзя использовать \ / : * ? " < > |, а имена CON, PRN, NUL, COM1COM9, LPT1LPT9 зарезервированы под устройства. В Linux запрещены только / и нулевой байт.

Путь к файлу: абсолютный и относительный

Путь — адрес файла в дереве папок. Абсолютный путь начинается от корня и работает из любого места. Относительный отсчитывается от текущей папки программы или терминала; . обозначает текущую папку, .. — родительскую.

Windows Linux, macOS
Разделитель Обратный слеш \ (прямой / тоже принимается) Прямой слеш /
Корень Буква диска: C:\, D:\ Единый корень /, диски монтируются в подпапки
Абсолютный путь C:\Users\Anna\Documents\report.docx /home/anna/Documents/report.docx
Относительный путь (из папки Documents) report.docx, ..\Downloads\photo.jpg report.docx, ../Downloads/photo.jpg

В Windows по умолчанию полный путь ограничен 260 символами (константа MAX_PATH): глубоко вложенные проекты упираются в ошибку «путь слишком длинный». Лечится параметром реестра LongPathsEnabled (Windows 10 1607 и новее) или переносом проекта ближе к корню диска. В Linux лимит — 4096 байт, на практике до него не доходят.

Атрибуты и права

Атрибуты — служебные сведения об объекте: размер, даты создания и изменения, флаги. В Windows это «Только чтение», «Скрытый», «Системный», «Архивный» — видны в свойствах и командой attrib.

Права доступа решают, кто и что может делать с объектом. В Linux и macOS у файла есть владелец и группа, а права задаются тремя действиями — чтение r, запись w, выполнение x — для владельца, группы и остальных. Строка -rwxr-xr-- в выводе ls -l значит: владелец читает, пишет и запускает, группа читает и запускает, остальные только читают; меняются права командой chmod. Для папки те же буквы значат другое: r — видеть список файлов, w — создавать и удалять их внутри, x — входить в папку и открывать содержимое. Папка с r без x покажет имена, но не даст открыть ни один файл.

В Windows права хранятся в списках доступа NTFS (ACL): вкладка «Безопасность» в свойствах объекта или команда icacls. Модель гибче, но идея та же: есть владелец, остальным разрешения выдают явно.

Скрытые файлы и папки

В Linux и macOS скрыто всё, что начинается с точки: .bashrc, .git, .config; ls их не показывает, ls -a — показывает. В Windows скрытость — атрибут: attrib +h secret.txt прячет файл, dir /a показывает всё; в Проводнике Windows 11 — «Вид -> Показать -> Скрытые элементы». Скрытие — не защита: показ включается одним щелчком.

Основные действия с файлами и папками

В графическом интерфейсе всё делается правой кнопкой и перетаскиванием (внутри диска — перемещение, между дисками — копирование; с Ctrl — точно копия, с Shift — точно перенос). В командной строке те же действия — короткие команды, и знать их полезно: на серверах графического интерфейса обычно нет.

Действие Windows cmd Windows PowerShell Linux, macOS
Показать содержимое папки dir Get-ChildItem (алиасы ls, dir) ls -l
Создать папку mkdir reports New-Item -ItemType Directory reports (или mkdir) mkdir reports
Создать пустой файл type nul > notes.txt New-Item notes.txt touch notes.txt
Скопировать copy a.txt b.txt, папку — xcopy /e src dst Copy-Item a.txt b.txt, папку — -Recurse cp a.txt b.txt, папку — cp -r src dst
Переместить move a.txt D:\ Move-Item a.txt D:\ mv a.txt /mnt/d/
Переименовать ren a.txt b.txt Rename-Item a.txt b.txt mv a.txt b.txt
Удалить файл del a.txt Remove-Item a.txt rm a.txt
Удалить папку с содержимым rmdir /s /q reports Remove-Item reports -Recurse rm -r reports
Найти по имени dir /s /b *.pdf Get-ChildItem -Recurse -Filter *.pdf find ~ -name "*.pdf"

В Linux переименование и перемещение — одна команда mv, потому что для файловой системы это одно действие: изменить запись в каталоге. Полный цикл в терминале Linux:

mkdir reports                      # папка
touch reports/q1.txt               # пустой файл
cp reports/q1.txt reports/q1-copy.txt
mv reports/q1-copy.txt reports/q2.txt   # переименовали
ls reports
# q1.txt  q2.txt
rm reports/q2.txt
rm -r reports                      # папка удалена вместе с q1.txt

В PowerShell тот же цикл — командами из таблицы; единственная ловушка — Rename-Item reports\q1-copy.txt q2.txt принимает вторым аргументом только новое имя, а не путь.

Про удаление. Проводник и файловые менеджеры Linux (Nautilus, Dolphin) отправляют объект в Корзину, откуда его можно вернуть. Shift+Delete в Windows, а также del, Remove-Item и rm удаляют сразу; на сетевых дисках и флешках Windows тоже удаляет минуя Корзину. Физически данные остаются на диске, пока их не перезапишут, поэтому после ошибочного удаления лучше сразу прекратить запись на этот диск.

Ярлык и копия: в чём разница

Копия — самостоятельный файл с тем же содержимым: изменения в одном не затрагивают другой, место занимают оба. Ярлык — маленький файл-указатель на оригинал: в Windows это .lnk (стрелка в углу значка), в Linux и macOS — символическая ссылка (ln -s /path/to/original link_name). Удаление ярлыка не трогает оригинал, а удаление или перенос оригинала делает ярлык «битым». Передавать другому человеку нужно копию: ярлык на чужой машине ни на что не указывает.

Три типичные ошибки новичка

  1. Двойное расширение. Проводник по умолчанию скрывает расширения известных типов, поэтому photo.jpg.exe показывается как photo.jpg, а по двойному щелчку запускается программа — так распространяются вирусы во вложениях. Решение: включить показ расширений («Вид -> Показать -> Расширения имён файлов»).

  2. Удаление системных папок. C:\Windows, C:\Program Files, /etc, /usr, /bin — это сама операционная система и программы, а не «мусор». Место освобождают в своих папках и встроенной очисткой диска. В Linux не запускать sudo rm -rf ... из чужих инструкций, не понимая, на какую папку команда указывает.

  3. Пробел в пути без кавычек. Оболочка делит строку по пробелам, и путь превращается в два аргумента.

cat My Docs/report.txt
# cat: My: No such file or directory
# cat: Docs/report.txt: No such file or directory
cat "My Docs/report.txt"      # верно: путь в кавычках

В Windows так же: copy C:\My Docs\report.txt D:\ файл не найдёт, copy "C:\My Docs\report.txt" D:\ сработает. Проще не использовать пробелы в именах папок проектов: my-docs, my_docs.

Выводы

  • Файл — это именованный набор данных на носителе, с которым операционная система работает как с единым целым; папка (каталог, директория) — контейнер со списком файлов и других папок, который собирает их в дерево.
  • Для файловой системы папка — тоже файл особого типа с таблицей «имя -> метаданные», поэтому у неё есть имя, даты и права, а расширение ей не нужно.
  • Расширение — часть имени после последней точки и только соглашение о формате: переименование photo.jpg в photo.png содержимое не меняет; в Linux регистр имени различается, в Windows и macOS по умолчанию — нет.
  • Путь — адрес файла в дереве папок: абсолютный начинается от корня (C:\ в Windows, / в Linux и macOS), относительный — от текущей папки, где . обозначает текущую папку, а .. — родительскую.
  • Права доступа в Linux и macOS задаются тройкой rwx для владельца, группы и остальных (для папки x — право входить внутрь), в Windows — списками доступа NTFS (ACL).
  • Основные действия — создать, скопировать, переместить, переименовать, удалить — выполняются мышью или командами (mkdir, copy/cp, move/mv, del/rm); del, rm и Shift+Delete удаляют сразу, минуя Корзину.

Где применяется

Для системного администратора работа с файлами — ежедневный инструмент: логи лежат в /var/log, настройки служб — в /etc, а немалая часть инцидентов сводится к неверным правам на файл или переполненному диску. Разобраться в файловой системе Linux, правах, ссылках и терминале можно на курсе «Администратор Linux. Базовый уровень» в Otus, а посмотреть, как это выглядит в живой практике, — на открытых уроках Otus.

Смежные темы: Файловая система — первое знакомство, NTFS и FAT32: разница и особенности, Windows и другие ОС: принципы работы.

FAQ

Могут ли в одной папке лежать два файла с одинаковым именем?
Нет, имя внутри папки уникально. Но report.txt и report.pdf — разные имена, а в Linux разными будут и Report.txt с report.txt.

Занимает ли пустая папка место на диске?
Да, немного: файловая система хранит запись о каталоге (в ext4 это inode плюс, как правило, один блок в 4 КБ). Проводник показывает «0 байт», потому что считает только размер содержимого.

Что будет, если у файла нет расширения?
Содержимое не пострадает. Windows при открытии спросит, какой программой это сделать; в Linux file определит тип по содержимому, а программы откроют файл по явному указанию.

OTUS Журнал
Скидка 5% 14-20 сентября на курсы (popup)