Главная >> Информация >> Путь к файлу в Linux

Путь к файлу в Linux

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

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

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

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

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

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

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

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

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

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

ls

dir

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

ls /home/sergiy/tmp/file1

dir1

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

ls ~/tmp/file1

dir2

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

ls file1

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

ls -a

dir3

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

./file1

dir4

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

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

ls ../tmp/file1

dir5

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

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

ls ./f*

dir6

dir7

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

ls ~/*/f*

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

Выводы

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

8 комментариев к “Путь к файлу в Linux”

    • На PlayStation 2 я хочу перейти в папку, её адрес mass:/POPS/ , и(или) увидеть все файлы *.elf из этой папки в имени которых есть xx.????.elf - какую команду нужно дать файл-менеджеру uLaunchElf ?

      Ответить
  1. Почему бы не отобразить на рисунке (схематично) файловую систему Windows и Linux? Существует какой-то подвох? Почему надо обязательно городить огород?

    Ответить
  2. Дичь полная, где указание пути с учётом другого диска, либо указания пути к дискам винды, например? Автор просто пока сам писал эту статью, то научился листинги смотреть в терминале - ВСЁ!!!

    Ответить
  3. К сожалению, статья содержит картинки не соответствующие последовательности изложения и способна только запутать бедного пользователя, лишённого возможности узнать информацию из первых рук. К сожалению и "первые руки" тоже не блещут щедростью на описание своего детища.
    Из-за этого бродят по интернету самопальные описания подобного рода.
    Заменяю многобукаф в малобукаф, но больше смысла, например:
    3. относительно домашний папки путь ~/tmp равен полному /home/sergiy/tmp

    Ответить

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