Относительное имя файла linux

Относительное имя файла linux

рЕТЕНЕЭЕОЙЕ РП ЖБКМПЧПК УЙУФЕНЕ

жБКМПЧХА УЙУФЕНХ НПЦОП РТЕДУФБЧЙФШ Ч ЧЙДЕ ДЕТЕЧБ, ФПМШЛП ЛПТЕОШ (root) ЬФПЗП ДЕТЕЧБ ОБИПДЙФУС ЧЧЕТИХ, Б ЧЕФЧЙ ТБУФХФ ЧОЙЪ. мЙУФШС ЬФПЗП ДЕТЕЧБ Й ЕУФШ ЖБКМЩ, Б ТБЪЧЕФЧМЕОЙС — ЛБФБМПЗЙ (ДЙТЕЛФПТЙЙ). оБ УМЕДХАЭЕН ТЙУХОЛЕ ДМС ЙЪПВТБЦЕОЙС ЖБКМПЧ ЙУРПМШЪХАФУС РТСНПХЗПМШОЙЛЙ, Б ДМС ДЙТЕЛФПТЙК — ПЧБМЩ.

ч ЛБЦДПН ЛБФБМПЗЕ (ТБЪЧЕФЧМЕОЙЙ) НПЦЕФ ВЩФШ НОПЗП ТБЪМЙЮОЩИ ЖБКМПЧ Й ЛБФБМПЗПЧ. ч ЬФПН УНЩУМЕ ЛБФБМПЗ ЧЩРПМОСЕФ ДЧЕ ЧБЦОЩЕ ЖХОЛГЙЙ: Ч ЛБФБМПЗЕ ИТБОСФУС ЖБКМЩ Й ЛБФБМПЗ УПЕДЙОСЕФУС У ДТХЗЙНЙ ЛБФБМПЗБНЙ, ЛБЛ ЧЕФЧШ ДЕТЕЧБ УПЕДЙОСЕФУС У ДТХЗЙНЙ ЧЕФЧСНЙ. лБЦДЩК ЛБФБМПЗ НПЦЕФ УПДЕТЦБФШ НОПЦЕУФЧП ЛБФБМПЗПЧ, ОП УБН ДПМЦЕО ВЩФШ РПФПНЛПН ФПМШЛП ПДОПЗП ЛБФБМПЗБ.

рТЙ ЧИПДЕ Ч УЙУФЕНХ РПМШЪПЧБФЕМШ ПЛБЪЩЧБЕФУС Ч УЧПЕК ДПНБЫОЕК ДЙТЕЛФПТЙЙ, Ч ЛПФПТПК ПО НПЦЕФ УПЪДБЧБФШ ЖБКМЩ, ХДБМСФШ ЙИ Й ЛПРЙТПЧБФШ. йНС, ЛПФПТПЕ ДБЕФУС ЛБФБМПЗХ ЙМЙ ЖБКМХ РТЙ ЕЗП УПЪДБОЙЙ, ОЕ СЧМСЕФУС РПМОЩН. рПМОЩН ЙНЕОЕН СЧМСЕФУС ЕЗП РХФЕЧПЕ ЙНС. ч пу Linux РХФЕЧПЕ ЙНС УПУФПЙФ ЙЪ ЙНЕО ЧУЕИ ЛБФБМПЗПЧ, ПВТБЪХАЭЙИ РХФШ Л ЖБКМХ ПФ ЧЕТЫЙОЩ ДЕТЕЧБ (/). ьФЙ ЙНЕОБ ПФДЕМСАФУС ДТХЗ ПФ ДТХЗБ УЙНЧПМБНЙ «ЛПУБС ЮЕТФБ» (/, «УМЕЫ»). рХФЕЧЩЕ ЙНЕОБ ДБАФУС Й ЖБКМБН. жБЛФЙЮЕУЛЙ ЙНС, ЛПФПТЩН УЙУФЕНБ ПВПЪОБЮБЕФ ЖБКМ, РТЕДУФБЧМСЕФ УПВПК ЛПНВЙОБГЙА ЙНЕОЙ ЖБКМБ У ЙНЕОБНЙ ЛБФБМПЗПЧ, ПВТБЪХАЭЙИ РХФШ ПФ ЛПТОЕЧПЗП ЛБФБМПЗБ ДП ЛБФБМПЗБ ДБООПЗП ЖБКМБ.

рХФЕЧЩЕ ЙНЕОБ НПЗХФ ВЩФШ БВУПМАФОЩНЙ Й ПФОПУЙФЕМШОЩНЙ. бВУПМАФОПЕ РХФЕЧПЕ ЙНС — ЬФП РПМОПЕ ЙНС ЖБКМБ ЙМЙ ЛБФБМПЗБ, ОБЮЙОБАЭЕЕУС УЙНЧПМПН ЛПТОЕЧПЗП ЛБФБМПЗБ. пФОПУЙФЕМШОПЕ РХФЕЧПЕ ЙНС ОБЮЙОБЕФУС УЙНЧПМПН ФЕЛХЭЕЗП (ТБВПЮЕЗП) ЛБФБМПЗБ Й РТЕДУФБЧМСЕФ УПВПК ПВПЪОБЮЕОЙЕ РХФЙ Л ЖБКМХ ПФОПУЙФЕМШОП ЧБЫЕЗП ТБВПЮЕЗП ЛБФБМПЗБ.

лПНБОДБ cd (change directory) РПЪЧПМСЕФ РЕТЕНЕЭБФШУС РП ЖБКМПЧПНХ ДЕТЕЧХ, ЙЪНЕОСС ФЕЛХЭЙК (ТБВПЮЙК) ЛБФБМПЗ. ч ЛБЮЕУФЧЕ РБТБНЕФТБ ЕК НПЦОП ХЛБЪБФШ ЛБЛ БВУПМАФОЩК, ФБЛ Й ПФОПУЙФЕМШОЩК РХФШ ЛБФБМПЗБ. у РПНПЭША ЛПНБОДЩ cd DOS ЧЩ РЕТЕНЕУФЙФЕУШ Ч РПДДЙТЕЛФПТЙА DOS (ЕУМЙ ПОБ УХЭЕУФЧХЕФ).

лБЦДЩК ЛБФБМПЗ (ЪБ ЙУЛМАЮЕОЙЕН ЛПТОЕЧПЗП) ЙНЕЕФ ТПДЙФЕМШУЛЙК ЛБФБМПЗ. дЧЕ ФПЮЛЙ, ЙУРПМШЪХЕНЩЕ ЛБЛ БТЗХНЕОФ ЛПНБОДЩ, ПВПЪОБЮБАФ ТПДЙФЕМШУЛЙК ЛБФБМПЗ. оБРТЙНЕТ, ЛПНБОДБ cd .. РЕТЕНЕУФЙФ ЧБУ Ч ТПДЙФЕМШУЛЙК ЛБФБМПЗ. пДОБ ФПЮЛБ ЙУРПМШЪХЕФУС ДМС ПВПЪОБЮЕОЙС ФЕЛХЭЕЗП ЛБФБМПЗБ.

еУМЙ Ч РТПГЕУУЕ РХФЕЫЕУФЧЙС РП ЖБКМПЧПНХ ДЕТЕЧХ ЧЩ «ЪБВМХДЙМЙУШ», ФП ЛПНБОДБ cd (ВЕЪ ХЛБЪБОЙС РБТБНЕФТБ) РЕТЕНЕУФЙФ ЧБУ Ч ЧБЫХ ДПНБЫОАА ДЙТЕЛФПТЙА. дМС РЕТЕНЕЭЕОЙС Ч ДПНБЫОЙК ЛБФБМПЗ ЛБЛПЗП-МЙВП РПМШЪПЧБФЕМС, НПЦОП ЧНЕУФП ЪБДБОЙС ЕЗП БВУПМАФОПЗП РХФЙ ЙУРПМШЪПЧБФШ УЙНЧПМ

, РПУМЕ ЛПФПТПЗП ДПМЦОП УМЕДПЧБФШ ЧИПДОПЕ ЙНС ЬФПЗП РПМШЪПЧБФЕМС, ОБРТЙНЕТ,

дМС ФПЗП ЮФПВЩ ПРТЕДЕМЙФШ, ЛБЛПК ЛБФБМПЗ СЧМСЕФУС ФЕЛХЭЙН, НПЦОП ЧПУРПМШЪПЧБФШУС ЛПНБОДПК pwd.

Источник

Относительное имя файла linux

Чаще всего файловая система размещается на компьютерном жёстком диске, который представляет собой с точки зрения операционной системы массив байтов фиксированного размера, обычно очень большого. Часто жёсткий диск разбивают на несколько непрерывных фрагментов ( разделов), каждый из которых также можно рассматривать как массив байтов. В этом случае на каждом разделе можно организовать свою файловую систему.

Имеется множество типов файловых систем. Они отличаются друг от друга способами хранения файлов. Некоторые из этих типов предназначены для носителей маленького объёма, другие — для больших. Файловые системы для лазерных дисков могут не поддерживать запись файлов (за счёт этого их внутреннее устройство становится проще); такие файловые системы записываются на диск целиком и однократно. Различные операционные системы поддерживают разные наборы типов файловых систем. Операционная система Linux способна поддерживать работу практически со всеми известными типами.

Файловая иерархия и директории

Во всех обычных файловых системах хранение файлов устроено по иерархическому принципу. Каждый файл получает имя, но, когда число хранимых файлов перевалит за десяток, становится крайне затруднительно выдумывать для новых файлов новые имена, которые ранее не встречались. Современные носители имеют объём, позволяющий хранить сотни тысяч файлов. В такой ситуации совершенно необходимо группировать файлы в группы из сравнительно небольшого количества файлов. Группы эти называются директориями ( каталогами, папками, фолдерами). Директории могут получить собственные имена (так же, как и файлы) и входить в другие директории. На вершине этой иерархии файлов и директорий находится корневая директория.

Читайте также:  Полезные примочки windows 10

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

В многопользовательских операционных системах для каждого зарегистрированного пользователя создаётся своя директория (она называется домашней). Обычно все рабочие файлы и директории пользователя хранятся именно в ней.

Основное и полное имя файла

Абсолютные и относительные имена файлов

Полное имя в этом примере указывает расположение файла по отношению к корневой директории / . Чтобы придти к нашему файлу, нужно начать с корневой директории, из неё попасть в поддиректорию home , затем — в tz , затем — в work , …, в sources , и там будет нужный файл. Говорят, что полное имя прокладывает путь к файлу.

Ну хорошо, здесь файл лежит где-то глубоко внутри домашней директории. А как проложить путь из /home/tz к файлу, скажем, /etc/passwd ? Ведь придётся выходить за пределы стартовой директории. Для директории, в которой непосредственно находится данная директория, есть специальное обозначение: .. (две точки). При прокладке пути это имя означает «подняться на один уровень выше». В данном примере придётся подняться из начальной директории на два уровня вверх, к корневой директории (внутри корневой нет других директорий, общих для /home/tz и /etc/passwd ). Так что относительное имя станет таким: ../../etc/passwd .

Пытливые люди тут должны поинтересоваться: что будет, если подняться в иерархии выше корневой директории? Что будут означать пути /.. , /../.. , /../../.. и так далее? Ничего страшного не случится. Выход за пределы корневой директории игнорируется: все эти пути указывают на корневую директорию.

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

Все фрагменты ./ , сколько бы их ни было, можно безболезненно удалить из пути: путь chIO.docbook означает то же самое, что и ./././././chIO.docbook . Единственное полезное предназначение точки — ссылаться изнутри директории на неё саму, для этого не нужно даже знать имя директории.

Примечание

Впрочем, в одном случае всё же путь вида ./program.pl не равносилен program.pl . В операционной системе Linux для каждой команды, вводимой в командной строке, ищется одноимённый файл с соответствующей программой. К примеру, команде ls отвечает файл /bin/ls . Где ищется? В нескольких директориях, предназначенных для хранения программ. Обычно это /bin , /sbin , /usr/bin , /usr/sbin . Как правило, только администратор системы может размещать программы в этих директориях — это мера безопасности, иначе злонамеренный пользователь смог бы подложить туда вредоносную программу вместо невинной, скажем, ls .

Значит ли это, что невозможно запустить файл с программой, лежащий не в этих директориях? Нет. Нужно просто указать путь к файлу с программой — абсолютный или относительный. Но если относительный, то по отношению к чему? К директории, о которой пойдёт речь в следующем разделе «Текущая директория».

Текущая директория

Командная оболочка sh или zsh , позволяющая нам вызывать программы из командной строки, обычно показывает свою текущую директорию в приглашении, например, так:

служит сокращением для домашней директории, в нашем случае, для /home/tz ).

Да, но всё это не отвечает на вопрос, для чего нужна текущая директория. Для того, чтобы коротко ссылаться на файлы и директории внутри неё. Например, команда

покажет сведения о всех *.pl -файлах в текущей директории

/work/54/inf/perl-problems/examples/perl , какова бы она ни была. Командная оболочка, запуская программу ls , передаст её процессу текущую директорию по наследству. Иначе пришлось бы обращаться к интересующим нас файлам по абсолютным именам:

Ужасно. Команда даже не вмещается на страницу!

Источник

Абсолютные и относительные пути в UNIX

Путь — это уникальное расположение к файлу или папке в файловой системе ОС. Путь к файлу представляет собой комбинацию / и буквенно-цифровых символов.

Абсолютный путь-имя

Абсолютный путь определяется как указание расположения файла или каталога из корневого каталога (/).
Чтобы написать абсолютное имя пути:

  • Начните с корневого каталога (/) и работайте вниз.
  • Напишите косую черту (/) после каждого имени каталога (последнее необязательно)

Например :

будет работать только тогда , когда тьфу «abc.sql» существует в текущем каталоге. Однако, если этот файл отсутствует в вашем рабочем каталоге и присутствует где-то еще, скажем, в / home / kt, то эта команда будет работать, только если вы будете использовать ее, как показано ниже:

В приведенном выше примере, если первым символом пути является /, местоположение файла должно быть определено относительно корня. Когда у вас есть более одного / в пути, для каждого такого /, вам нужно спуститься на один уровень в файловой системе, как в приведенном выше kt на один уровень ниже home, и, следовательно, на два уровня ниже root.

An absolute path is defined as specifying the location of a file or directory from the root directory(/). In other words,we can say that an absolute path is a complete path from start of actual file system from / directory.

Относительный путь

Относительный путь определяется как путь, связанный с настоящим, работающим напрямую (pwd). Он начинается в вашем текущем каталоге и никогда не начинается с / .

Чтобы быть более конкретным, давайте взглянем на рисунок ниже, на котором, если мы ищем фотографии, то будет предоставлен абсолютный путь для него, но, если предположить, что мы уже присутствуем в каталоге jono, то относительный путь для него можно записать как просто

С помощью . и .. в относительных путях

UNIX предлагает ярлык в относительном пути, который использует текущий или родительский каталог в качестве ссылки и указывает путь к нему. Относительное имя пути использует один из этих загадочных символов:

Теперь, на самом деле это означает, что если мы в настоящее время находимся в каталоге / home / kt / abc и теперь вы можете использовать .. в качестве аргумента для cd, чтобы перейти в родительский каталог / home / kt как:

ПРИМЕЧАНИЕ: теперь / когда используется с .. имеет другое значение, вместо того, чтобы двигаться вниз на уровень, он перемещается на один уровень вверх:

Пример абсолютного и относительного пути

Предположим, что вы сейчас находитесь в home / kt и хотите изменить каталог на home / kt / abc. Давайте рассмотрим как абсолютные, так и относительные концепции пути, чтобы сделать это:

  1. Изменение каталога с концепцией относительного пути:
  2. Изменение каталога с концепцией абсолютного пути:

Эта статья предоставлена Dimpy Varshni . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Источник

Введение в курс практических занятий. Знакомство с операционной системой UNIX

Упрощенное понятие об устройстве файловой системы в UNIX. Полные и относительные имена файлов

В операционной системе UNIX существуют три базовых понятия: «процесс», «файл» и «пользователь». С понятием » пользователь » мы только что уже столкнулись и будем сталкиваться в дальнейшем при изучении работы операционной системы UNIX . Понятие «процесс» характеризует динамическую сторону происходящего в вычислительной системе, оно будет подробно обсуждаться в лекции 2 и в описании последующих семинаров. Понятие » файл » характеризует статическую сторону вычислительной системы.

Из предыдущего опыта работы с вычислительной техникой вы уже имеете некоторое представление о файле, как об именованном наборе данных, хранящемся где-нибудь на магнитных дисках или лентах. Для нашего сегодняшнего обсуждения нам достаточно такого понимания, чтобы разобраться в том, как организована работа с файлами в операционной системе UNIX . Более подробное рассмотрение понятия » файл » и организации файловых систем для операционных систем в целом будет приведено в лекции 11 и лекции 12, а также на семинарах 11–12, посвященных организации файловых систем в UNIX .

Все файлы, доступные в операционной системе UNIX , как и в уже известных вам операционных системах, объединяются в древовидную логическую структуру. Файлы могут объединяться в каталоги или директории. Не существует файлов, которые не входили бы в состав какой-либо директории. Директории в свою очередь могут входить в состав других директорий. Допускается существование пустых директорий, в которые не входит ни один файл , и ни одна другая директория (см. рис. 1–2.1). Среди всех директорий существует только одна директория , которая не входит в состав других директорий – ее принято называть корневой. На настоящем уровне нашего незнания UNIX мы можем заключить, что в файловой системе UNIX присутствует, по крайней мере, два типа файлов: обычные файлы, которые могут содержать тексты программ, исполняемый код , данные и т.д. – их принято называть регулярными файлами, и директории.

Каждому файлу (регулярному или директории) должно быть присвоено имя. В различных версиях операционной системы UNIX существуют те или иные ограничения на построение имени файла. В стандарте POSIX на интерфейс системных вызовов для операционной системы UNIX содержится лишь три явных ограничения:

  • Нельзя создавать имена большей длины, чем это предусмотрено операционной системой (для Linux – 255 символов).
  • Нельзя использовать символ NUL (не путать с указателем NULL !) – он же символ с нулевым кодом, он же признак конца строки в языке C.
  • Нельзя использовать символ ‘/’ .

От себя добавим, что также нежелательно применять символы «звездочка» – «*» , «знак вопроса» – «?» , «кавычка» – «\»» , » апостроф » – «\`» , » пробел » – » » и » обратный слэш» – «\\» (символы записаны в нотации символьных констант языка C).

Единственным исключением является корневая директория , которая всегда имеет имя «/» . Эта же директория по вполне понятным причинам представляет собой единственный файл , который должен иметь уникальное имя во всей файловой системе. Для всех остальных файлов имена должны быть уникальными только в рамках той директории, в которую они непосредственно входят. Каким же образом отличить два файла с именами «aaa.c» , входящими в директории «b» и «d» на рисунке 1–2.1, чтобы было понятно о каком из них идет речь? Здесь на помощь приходит понятие полного имени файла .

Давайте мысленно построим путь от корневой вершины дерева файлов к интересующему нас файлу и выпишем все имена файлов (т.е. узлов дерева), встречающиеся на нашем пути, например, «/ usr b aaa.c» . В этой последовательности первым будет всегда стоять имя корневой директории, а последним – имя интересующего нас файла. Отделим имена узлов друг от друга в этой записи не пробелами, а символами «/» , за исключением имени корневой директории и следующего за ним имени ( «/usr/b/aaa.c» ). Полученная запись однозначно идентифицирует файл во всей логической конструкции файловой системы. Такая запись и получила название полного имени файла .

Понятие о текущей директории. Команда pwd. Относительные имена файлов

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

Для каждой работающей программы в операционной системе, включая командный интерпретатор ( shell ), который обрабатывает вводимые команды и высвечивает приглашение к их вводу, одна из директорий в логической структуре файловой системы назначается текущей или рабочей для данной программы. Узнать, какая директория является текущей для вашего командного интерпретатора, можно с помощью команды операционной системы pwd .

Источник

Читайте также:  Тест скорости жесткого диска mac os
Оцените статью
Примечание