Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Вы когда-нибудь терялись в лабиринте папок Linux, пытаясь найти нужный файл? Запутались в этих слешах и точках? Вы не одиноки! Для многих новичков пути в Linux становятся настоящим камнем преткновения.

Но это не магия, а простая и логичная система. Представьте, что вся файловая система — это дерево, растущее из одного корня. В отличие от Windows, здесь нет дисков C: или D:. Все начинается с «/».

Мы разберем три типа путей, которые заменят ваш хаос на идеальный порядок. Вы поймете разницу между абсолютным путем от корня и относительным от текущей папки. Узнаете, что означает загадочный символ «~» и как он сэкономит ваше время.

Откроем секреты двух особых ссылок в каждой папке: «.» и «..». Они — ваш ключ к мгновенной навигации на уровень выше или для запуска программ прямо из текущего каталога.

А еще вы научитесь использовать мощь звездочки «*» для поиска файлов по шаблону в любой части системы. Эти трюки работают не только в терминале, но и в файловых менеджерах!

Готовы раз и навсегда покончить с неразберихой? Переходите к статье и превратитесь из новичка, блуждающего в потемках, в уверенного пользователя, который мастерски управляет файлами в Linux.


Все файлы в Linux имеют определенный адрес в файловой системе, с помощью которого мы можем получить к ним доступ с помощью файлового менеджера или консольных утилит. Это довольно простая тема, но у многих новичков с этим возникают трудности.

В сегодняшней небольшой заметке мы рассмотрим что такое путь к файлу Linux, каким он может быть, как правильно его писать и многое другое. Если раньше у вас возникали с этим трудности, то после прочтения статьи все станет полностью понятно.

Пути файлов в Linux

Файловая система Linux очень сильно отличается от Windows. Мы не будем рассматривать ее структуру, это было сделано ранее. Мы сосредоточимся на работе с файлами.

Самое главное отличие, в том что адрес файла начинается не с диска, например, C: или D: как это происходит в Windows, а с корня, корневого системного каталога, к которому подключены все другие. Его адрес - /. И тут нужно сказать про адреса. Пути файлов linux используют прямой слеш "/" для разделения каталогов в адресе, и это отличается от того, что вы привыкли видеть в Windows - .

Например, если в Windows полный путь к файлу на рабочем столе выглядел C:UsersSergiyDesktop то в путь файла в linux будет просто /home/sergiy/desktop/. С этим пока все просто и понятно. Но проблемы возникают дальше.

В операционной системе Linux может быть несколько видов путей к файлу. Давайте рассмотрим какие бывают пути в linux:

  • Полный, абсолютный путь linux от корня файловой системы - этот путь вы уже видели в примере выше, он начинается от корня "/" и описывает весь путь к файлу;
  • Относительный путь linux - это путь к файлу относительно текущей папки, такие пути часто вызывают путаницу.
  • Путь относительно домашней папки текущего пользователя. - путь в файловой системе, только не от корня, а от папки текущего пользователя.

Рассмотрим теперь подробнее как выглядят эти пути в linux, а также разберем несколько примеров, чтобы было окончательно понятно. Для демонстрации будем пользоваться утилитой ls, которая предназначена для просмотра содержимого каталогов.

Например, у нас есть такой каталог в домашней папке с четырьмя файлами в нем:

ls

Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Вот так будет выглядеть полный путь linux к одному из файлов:

ls /home/sergiy/tmp/file1

Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Это уже относительный путь linux, который начинается от домашней папки, она обозначается ~/. Заметьте, не ~, а именно ~/. Дальше вы уже можете указывать подпапки, в нашем случае tmp:

ls ~/tmp/file1

Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Ну или путь файла в linux, относительно текущей папки:

ls file1

В каждой папке есть две скрытые ссылки, мы сможем их увидеть с помощью ls, выполнив ее с параметром -a:

ls -a

Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Первая ссылка указывает на текущую папку (.), вторая (..) указывает на папку уровнем выше. Это открывает еще более широкие возможности для навигации по каталогам. Например, чтобы сослаться на файл в текущей папке можно использовать конструкцию:

./file1

Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Это бесполезно при просмотре содержимого файла. Но очень важно при выполнении программы. Поскольку программа будет сначала искаться в среде PATH, а уже потом в этой папке. А потому, если нужно запустить программу, которая находится в текущей папке и она называется точно также как и та что в каталоге /bin, то без явной ссылки что файл нужно искать в текущей папке ничего не получится.

Вторая ссылка вам позволяет получить доступ к файлам в папке выше текущей. Например:

ls ../tmp/file1

Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Такие конструкции могут довольно часто встречаться при компиляции программ. Все эти символы и пути файлов linux вы можете применять не только в терминале, но и в любом файловом менеджере, что может быть очень удобно.

Но терминал Linux предоставляет еще более широкие возможности. Вы можете использовать простые символы замены прямо в адресах файлов или каталогов. Например, можно вывести все файлы, начинающиеся на f:

ls ./f*

Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Навигация по файлам в Linux: полный гид по абсолютным и относительным путям

Или даже можно искать не только в папке tmp, а в любой подпапке домашней папки:

ls ~/*/f*

И все это будет работать, возможно, это не всегда нужно и практично. Но в определенных ситуациях может очень сильно помочь. Эти функции реализуются на уровне оболочки Bash, поэтому вы можете применять их в любой команде. Оболочка смотрит сколько файлов было найдено и для каждого из них вызывает команду.

Выводы

Вот и все. Теперь вы знаете все что необходимо, чтобы не только правильно написать путь к файлу linux, но и выполнять более сложные действия, например, поиск файлов или навигация по каталогам с помощью команды cd. Если у вас остались вопросы, спрашивайте в комментариях!

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив