Пути: как объяснить компьютеру, где лежит файл
В прошлом уроке мы выяснили, что файлы лежат в папках, а папки вкладываются деревом. Теперь вопрос: как сказать компьютеру «открой вот этот конкретный файл»? Ведь файлов с именем заметка.txt на компьютере может быть десять штук в разных папках.
Ответ — путь. Путь это адрес файла: маршрут по дереву папок, который однозначно ведёт к нужному файлу. Это как адрес дома: по нему почтальон точно знает, куда нести письмо. В этом уроке разберём два вида путей и научимся их читать.
Аналогия: адрес дома и «соседняя дверь»
Представь, что тебе нужно объяснить, как найти какое-то место. Есть два способа.
Первый способ — полный адрес. «Город Москва, улица Ленина, дом 5, квартира 10.» Такой адрес работает откуда угодно: хоть ты в соседнем дворе, хоть в другой стране — по нему всегда найдут одну и ту же квартиру. Это абсолютный путь.
Второй способ — относительно того, где ты сейчас. «Выйди из этой комнаты и зайди в соседнюю дверь справа.» Такая инструкция короче, но работает только если знать, откуда ты стартуешь. Из другого здания «соседняя дверь справа» приведёт совсем не туда. Это относительный путь.
Оба способа правильные. Полный адрес надёжнее, но длиннее. «Соседняя дверь» короче, но зависит от того, где ты стоишь. С путями в компьютере ровно та же логика.
Корень: с чего начинается дерево
Чтобы дать полный адрес, нужна точка отсчёта — самое начало дерева папок. Эту самую верхнюю папку называют корнем.
Тут есть разница между операционными системами:
- На Linux и macOS корень обозначается одним символом — косая черта
/. Всё дерево начинается от/. - На Windows у каждого диска свой корень:
C:\,D:\и так далее.
Косую черту / называют разделителем: ей разделяют папки в пути. На Windows исторически используется обратная черта \, на Linux и macOS — прямая /.
В этом курсе мы работаем в терминале по образцу Linux и macOS, поэтому дальше используем /. Если у тебя Windows — не пугайся: в терминале (особенно в современном) / тоже чаще всего понимается, а сам принцип одинаковый.
Абсолютный путь: полный адрес от корня
Абсолютный путь начинается с корня (/ на Linux и macOS) и описывает весь маршрут до файла, шаг за шагом по папкам.
Вот пример. Прочитаем его как маршрут слева направо:
/home/anna/Документы/резюме.txt
Это читается так: «начни от корня /, зайди в папку home, в ней зайди в папку anna, в ней в папку Документы, и там лежит файл резюме.txt». Каждая / — это «зайди внутрь следующей папки».
Главное свойство абсолютного пути: он работает откуда угодно. Где бы ты сейчас ни «стоял» в дереве папок, /home/anna/Документы/резюме.txt укажет на один и тот же файл. Как полный почтовый адрес.
Текущая папка: где ты «стоишь» прямо сейчас
Чтобы понять относительные пути, нужно усвоить одну идею: в терминале ты всегда «находишься» внутри какой-то одной папки. Её называют текущей (или рабочей) папкой. Это как комната, в которой ты сейчас стоишь.
Когда ты набираешь относительный путь, компьютер отсчитывает его именно от текущей папки. Поменяешь текущую папку — и тот же относительный путь поведёт в другое место.
У текущей папки есть короткое обозначение — одна точка . означает «папка, в которой я сейчас». Например, ./заметка.txt значит «файл заметка.txt прямо здесь, в текущей папке». Часто точку с косой чертой можно опустить и написать просто заметка.txt — это то же самое.
Относительный путь и две точки «вверх»
Относительный путь не начинается с корня /. Он отсчитывается от текущей папки — той самой «соседней двери».
Чтобы подняться из текущей папки на уровень вверх, к родительской папке, используют две точки ... Это значит «папка, внутри которой лежит текущая».
Разберём на дереве. Пусть ты сейчас стоишь в папке Документы по адресу /home/anna/Документы:
. это сама папка Документы (где ты сейчас)
.. это папка anna (на уровень вверх)
../Фото это папка Фото рядом: поднялись к anna и зашли в Фото
резюме.txt это файл в текущей папке (то же, что ./резюме.txt)
Главное свойство относительного пути: он зависит от того, где ты стоишь. Если ты перейдёшь в другую папку, то ../Фото поведёт уже в другое место — как «соседняя дверь» из другого здания.
Тильда: короткий путь домой
У тебя есть домашняя папка — личная папка, где хранятся твои документы, загрузки и настройки. На Linux это обычно /home/твоё-имя, на macOS /Users/твоё-имя.
Писать полный путь к дому каждый раз долго, поэтому придумали короткое обозначение — тильда ~ (волнистая чёрточка). Где бы ты ни находился, ~ всегда означает твою домашнюю папку.
~ твоя домашняя папка целиком
~/Документы папка Документы внутри домашней
~/Фото/море.jpg файл море.jpg в папке Фото внутри домашней
То есть если твоя домашняя папка /home/anna, то ~/Документы это то же самое, что /home/anna/Документы, только короче. Очень удобно: тильда работает откуда угодно, как абсолютный путь, но писать её намного быстрее.
Запомни три коротких знака — они встретятся постоянно: ~ это дом, . это «здесь» (текущая папка), .. это «на уровень вверх» (родительская папка). Эти три обозначения экономят кучу набора текста.
Когда какой путь использовать
Простое правило для новичка:
- Хочешь надёжно и независимо от того, где стоишь — бери абсолютный путь (от
/или от~). - Файл прямо рядом, в текущей или соседней папке — удобнее относительный (
заметка.txt,../Фото).
Хороший способ себя проверить: спроси «а этот путь сработает, если я перейду в другую папку?». Абсолютный — да, всегда. Относительный — нет, он указывает уже на другое место.
Попробуй сам
Это всё ещё разминка на бумаге — команды будем набирать в следующем уроке. Возьми ручку или просто подумай.
Дано дерево:
/home/anna/
Документы/
резюме.txt
письмо.txt
Фото/
море.jpg
Ты сейчас стоишь в папке /home/anna/Документы. Ответь:
- Какой абсолютный путь у файла
море.jpg? (Подсказка: начни от/.) - Как добраться до
море.jpgотносительным путём изДокументы? (Подсказка: сначала на уровень вверх через.., потом вФото.) - Что означает путь
.прямо сейчас — в какой папке ты находишься? - Что означает
..— куда он ведёт изДокументы? - Если домашняя папка
/home/anna, то на какой файл укажет~/Документы/письмо.txt?
Проверь себя: (1) /home/anna/Фото/море.jpg; (2) ../Фото/море.jpg; (3) папка Документы, где ты стоишь; (4) в папку anna, на уровень вверх; (5) на файл /home/anna/Документы/письмо.txt.
Если все пять ответов сошлись — ты уже умеешь читать пути. В следующем уроке мы наконец откроем терминал и пройдём по этому дереву настоящими командами.