Компьютерные подсказки для начинающих пользователей

UNC в Windows

Общее соглашение об именах (англ. Uniform Naming Convention) или универсальное соглашение об именовании (universal naming convention), UNC — соглашение об именовании файлов и других ресурсов, дающее машинонезависимое определение местоположения ресурса.

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

Синтаксис UNC-пути к принтеру следующий: , где  — сетевое имя компьютера,  — это сетевое имя общего принтера на этом компьютере.

Синтаксис UNC-пути к каталогу или файлу следующий: , где  — сетевое имя компьютера,  — это сетевое имя общего каталога на этом компьютере, а  — путь к каталогу или файлу из общего каталога.

не обязательно называется так же, как ассоциированный с ним каталог на сервере, имя даётся в ходе открытия общего доступа к каталогу в файловой системе компьютера[источник не указан 2958 дней].

Некоторые API-вызовы в Microsoft Windows поддерживают использование так называемых Long UNC или UNCW: или , где  — буква диска,  — имя каталога на диске,  — имя файла в каталоге или на диске[источник не указан 2958 дней].

В версиях Windows, предшествовавших Windows XP, только API-вызовы, использующие Long UNC, могли использовать пути длиной более 260 символов[источник не указан 2958 дней].

Всего в Microsoft Windows используются следующие типы путей:

  • LFS (англ. local file system) — имена в локальной файловой системе, например: .
  • UNC — сетевые имена, например: .
  • Long UNC или UNCW — длинные имена, например: или .

Абсолютный путь (адрес)

Что такое абсолютный путь к файлу?

Говоря «домашняя папка» я подразумеваю начало выделенного хостинг-провайдером пространства. Например, если речь идёт о локальном сервере, на операционной системе Windows, в качестве домашней папки будет выступать сам диск, т. е. . В тоже время, зачастую хостинг-провайдер выделяет пользователю лишь определенное виртуальное (условное) пространство, для которого в качестве домашней папки выступает определенная папка, зачастую называемая .

Говоря «доменное имя» я подразумеваю URL-адрес, который начинается с упоминания протокола, например: . В сети Интернет, именно он является домашней папкой для каждого из представленных ресурсов.

Как узнать абсолютный путь на сервере в PHP?

Если с URL-адресом всё более-менее понятно, то вот с домашней папкой на сервере дело обстоит несколько сложнее. В конце концов, у каждого провайдера есть свои заморочки и это следует учесть.

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

Уточню, говоря «корневая папка» я подразумеваю папку на сервере, выделенную для сайта. Именно она служит отправной точкой URL-адреса относительно доменного имени.

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

$abspath = dirname(__FILE__) .'/';

В PHP 5.3 и новее, можно уже использовать константу :

$abspath = __DIR__

Таким образом очень удобно подключать в дальнейшем файл и использовать полученный в нем абсолютный путь переменной как отправную точку. Например, предположим, что скрипт находится в папке: – а нужный файл в папке: . В этом случае вызов может иметь вид:

include_once('../config.php');
$fh = fopen($abspath .'/2013/12/data/data.txt', 'r');

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

Как прописать путь к папке. Инструкция

Вам нужно найти «Запуск программы», для этого в меню «Пуск» Вы находите «Выполнить» и делаете выбор.
Вашему вниманию будет предоставлена строка ввода. В этой строке Вам надо прописать «regedit», что является названием  реестра. Когда Вы введете слово и нажмете на ОК, Вы окажетесь в рабочем окне реестра.
Слева Вашему взгляду представится некое количество папок, с этого перечня выберете  папку «HKEY_LOCAL_MACHINE»

Сделав выбор, два раза нажмите на нее или раз по крестику.
Далее Вам надо найти в списке «SOFTWARE», в нем, как правило, имеют свойство отображаться папки с программами и играми, входящими в реестр.
Открывая документ «SOFTWARE», таким же способом, как «HKEY_LOCAL_MACHINE», Вы найдете ту папку, которая Вам нужна по ее названию.
Выделив ее одним щелчком левой кнопкой мыши, посмотрите в правой части окна отображающиеся ключи нужной Вам папки.  Вы должны убедиться в ее важности, имея в виду нахождения там exe-файла. В обратном порядке, ключи Вы не сможете увидеть

На строке ключа, в пункте «Значение»,  и есть ответ на вопрос как прописать путь к папке.
Для того, чтобы путь папки был правильным, нужно его поменять. Щелкните два раза по ключу и запишите в строку значения адрес, который ведет к Вашей папке с данными.

Абсолютный путь в URL

Абсолютный путь в URL означает путь от корня сайта. Корень сайта — это папка, которая содержит публичную часть сайта, т.е. доступную извне.

По-умолчанию корень сайта — это сама папка с сайтом, например site.ru, но зачастую её меняют на site.ru/public, чтобы часть скриптов нельзя было запустить по прямой ссылке в браузере.

  • http://test.ru/article.php — полный путь с протоколом и доменом
  • //test.ru/article.php — полный путь без протокола (берётся из текущей страницы). Содержит два слеша в начале.
  • /article.php — полный путь без протокола и домена (берутся из текущей страницы). Содержит слеш в начале.

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

Лично я практически всегда использую третий вариант, кроме случаев, когда нужно указать ссылку на другой поддомен (blog.site.ru, shop.site.ru и т.д.).

Как найти папку загрузки

По умолчанию настройки Яндекс Браузера выставлены таким образом, что файлы загружаются в папку «Downloads» («Загрузки»). Она расположена на локальном диске C в вашей учетной записи. Но для многих пользователей это не удобно. Плюс на локальном диске C может не хватать места.

Для этого:

Вот здесь видно, где находится папка загрузки. В данном случае это: Локальный диск C –Пользователи – Имя_учетной_записи – Загрузки. Впрочем, у Вас будет точно такой же путь сохранения файлов, ведь по умолчанию он одинаковый.

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

realpath

Первый вариант — использовать команду realpath:

realpath timeout

Привет вывода абсолютного пути:

/home/mial/bin/timeout

Эта программа является частью coreutils.

По умолчанию эта программа преобразует символические ссылки (опция -P) и показывает расположение файла даже если он не существует (опция -m) — то есть эти опции указывать необязательно.

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

realpath not_exist
/home/mial/bin/not_exist

Если вас это не устраивает, то используйте опцию -e — тогда если указанный файл не существует, то вместо вывода абсолютного пути будет показано сообщение об ошибке.

Путь относительно корня сайта

Вы наверное уже поняли что пути относительно документа используются очень часто. Но при их использовании существует одна проблема. Которая заключается в том, что при смене структуры директорий, пути придется менять.
Но такая проблема решаема при использовании путей относительно корня сайта. Где путь указывается от корневой директории до документа.
Все пути относительно корня сайта начинаются со знака . Только здесь, в отличии от путей относительно документа этот знак используется для указания корневой директории. Потому, что он используется в начале пути.
Путь относительно корня сайта позволяет перемещать некоторые файлы, без ущерба для ссылок. Этот тип пути Вы сможете использовать только на web-сервере в интернете, или на web-сервере расположенном на локальной машине.

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

Например, /images/products.png обозначает, что файл products.png находится в папке images, которая расположена в корневом каталоге.

Самый простой способ определить корневой относительный путь — взять абсолютный и отбросить http:// и имя хоста.

Следующий код предназначен для вставки изображения «contact.png».

Я надеюсь, что Вы уже знаете какой тип пути использовался в вышеприведённом коде. Если нет, тогда посмотрите приведённое выше определение пути относительно документа.
Теперь, когда посетитель зайдет на такие страницы сайта как home.html, contact.ntml, он увидит прекрасно отображаемую страницу. В каждую из которых вставлен файл _contact.html, в который, в свою очередь, вставлено изображение contact.png.
Другими словами зайдя, к примеру, на страницу home.html, происходит следующее: «Выполняется код основной страницы home.html. Затем вставляется и исполняется код страницы _contact.html. Код страницы _contact.html, говорит что нужно перейти в директорию images и взять от туда изображение contact.png«.
Если опустить сам код для вставки, то все работает отлично. Но вот если запустить страницу products.html, то произойдет ошибка. Так как код будет пытаться найти директорию images и файл contact.png в директории products. Но такой директории там не существует, из за чего собственно и возникает проблема.
Становится ясным, что использовать путь относительно документа здесь нельзя.
Конечно здесь можно использовать абсолютный путь. О плюсах и минусах данного подхода я говорил выше.
В общем говоря, это одна из ситуаций, когда нужно использовать путь относительно корня сайта. При использовании пути относительно корня сайта, ссылка будет всегда начинаться с корневого каталога(корня сайта). Такой тип пути позволит использовать код для вставки, например изображения, независимо от иерархии сайта, и его директорий.
Использование пути относительно корня сайта в вышеприведённом примере, позволит избежать проблем, со вставкой изображения. Потому как независимо от того где будет использовать такой тип пути, он всегда найдет указанный в нем файл.
Путь относительно корня сайта, очень похож на путь относительно документа. Для того что бы создать путь относительно корня сайта, нужно добавить символ в начало пути.

Теперь изображение будет корректно вставляться на любой из страниц сайта.

Надеюсь я немного помог Вам разобраться в том какие пути существуют, и в том когда и где они используются. Теперь можно использовать все типы пути по прямому их назначению.

Абсолютный путь

Когда ссылка представляет из себя полный URL файла или страницы, это и есть абсолютный путь. При этом в адресе должен присутствовать используемый протокол. Например, http://www.uamedwed.com — это абсолютный путь к конкретному веб-сайту. В данном случае абсолютный путь к главной странице моего блога. Где протоколом является http, а www.uamedwed.com доменом(именем).

В основном абсолютный путь используется, тогда, когда нужно сослаться на другой сайт. Иными словами если Вы хотите отправить посетителя на другой сайт, то нужно использовать абсолютный путь. Хотя, такой путь можно использовать и на собственном сайте. Но многие придерживаются того, что ссылки внутри сайта должны быть относительными.
Использование абсолютного пути может повлечь за собой некоторые проблемы. Например при переносе сайта с локальной машины на сервер(это в том случае, если вы использовали на локальной машине адреса в виде http://localhost/sitename.ua/…). Трудности могут возникнуть, тогда, когда появится необходимость в смене домена(имени сайта). Хотя, все эти трудности решаемы, но на них придётся потратить некоторое количество времени.
Когда есть минусы, значит должны быть и плюсы. Возьмём к примеру такую ситуацию, как кража контента с вашего сайта. На практике я уже не раз убедился в том, что текст воруют целиком, при этом не оставляя обратной ссылки на оригинал. Так вот, при использовании абсолютных путей, можно получить обратные ссылки с сайта, на котором находится сворованный контент. Но это только в том случае если у Вас внутренняя перелинковка осуществлялась с использованием абсолютных путей. Хотя это не всегда работает, но я уже не раз замечал появление ссылок с чужих сайтов, на которых был расположен мой контент.

Немного отступив от темы хочу вкратце рассказать про то что такое URL.

Чем отличаются пути в PHP и URL

Когда мы смотрим любимый фильм или сериал, мы видим только готовый продукт.

А за кадром существует совсем другой, невидимый для нас мир: стилисты и гримёры, искусственные декорации, наложение спецэффектов и многое другое.

Процесс съёмок музыкального клипа

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

Если ты видишь на каком-нибудь сайте страницу с URL /category/monitors — это совсем не значит, что на сайте есть скрипт /category/monitors/index.php.

Вполне вероятно, что и такой папки там тоже нет, а все URL адреса обрабатываются одним единственным PHP файлом.

И даже если в URL присутствует расширение файла, например /about.html — это тоже не говорит о существовании файла about.html. Может он есть, а может и нет.

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

Ошибка №1: Подстановка физического пути в URL

Очень частая ошибка новичков — пытаться подставить в URL адрес ссылку на физический файл, вроде такого:

Это неправильно. Браузер не может видеть реальную файловую структуру сервера. Он не видит никаких дисков D, он видит только URL адреса.

Правильная ссылка выглядит так (разницу объясню чуть позже):

Ошибка №2: Подключение скриптов по URL

Иногда новички пытаются подключить физический файл по его URL:

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

Как правильно:

Представления пути по операционной системе и оболочке

Операционная система Оболочка Корневой каталог Разделитель каталогов Текущий каталог Родительский каталог Домашний каталог Примеры
UNIX-подобная ОС Командная оболочка UNIX
DOS COMMAND.COM или
OS/2 cmd.exe или
Microsoft Windows cmd.exe или илипримечание: для команды CD, / treated as relative path (same as .\) или (примечание: для команды CD, / treated as relative path (same as .\))
Microsoft Windows Windows PowerShell или или или или
TOPS-20 DCL
RSX-11 DCL
OpenVMS DCL или
Classic Mac OS
ProDOS AppleSoft BASIC
AmigaOS Amiga CLI / AmigaShell (empty string)
RISC OS Task window

примечание: &, % and @ can also be used to reference the root of the current user, the library and the current (working) directory respectively.

Когда файловые системы монтируются с поддержкой расширений файлов, символы ‘.’ заменяются на ‘/’, как в примере с Japan/gif выше.

Symbian OS File manager
Domain/OS Shell (root of domain)

(root of current node)

MenuetOS CMD
Stratus VOS интерпретатор командной строки VOS
NonStop Kernel TACL Tandem Advanced Command Language Нет корня Нет родительского каталога
CP/M CCP Нет подкаталогов Нет подкаталогов Нет родителей Нет подкаталогов
GS/OS или или

прим.: префикс может быть числом (0-31), (загрузочный том) или (домашний каталог AppleShare)

или

Традиционные пути DOSTraditional DOS paths

Стандартный путь DOS может состоять из трех компонентов:A standard DOS path can consist of three components:

  • Буква тома или диска, после которой следует разделитель томов ().A volume or drive letter followed by the volume separator ().
  • Имя каталога.A directory name. Символ разделителя каталогов служит для разделения подкаталогов во внутренней иерархии каталога.The directory separator character separates subdirectories within the nested directory hierarchy.
  • Необязательное имя файла.An optional filename. Символ разделителя каталогов служит для разделения пути к файлу и его имени.The directory separator character separates the file path and the filename.

Если присутствуют все три компонента, путь является абсолютным.If all three components are present, the path is absolute. Если буква тома или диска не указана и имя каталога начинается с символа разделителя каталогов, такой путь задан относительно корня текущего диска.If no volume or drive letter is specified and the directory name begins with the directory separator character, the path is relative from the root of the current drive. В противном случае путь задан относительно текущего каталога.Otherwise, the path is relative to the current directory. В следующей таблице показаны некоторые возможные пути к каталогам и файлам.The following table shows some possible directory and file paths.

путьPath Описание:Description
Абсолютный путь к файлу из корня диска C:.An absolute file path from the root of drive C:
Абсолютный путь из корня текущего диска.An absolute path from the root of the current drive.
Относительный путь к файлу в подкаталоге текущего каталога.A relative path to a file in a subdirectory of the current directory.
Относительный путь к файлу в каталоге, который является одноранговым для текущего каталога.A relative path to file in a directory that is a peer of the current directory.
Абсолютный путь к файлу из корня диска C:.An absolute path to a file from the root of drive C:
Относительный путь из текущего каталога диска C:.A relative path from the current directory of the C: drive.

Важно!

Обратите внимание на различия между двумя последними путями.Note the difference between the last two paths. В обоих случаях задается необязательный описатель тома (C:), однако первый путь, в отличие от второго, начинается с корня указанного тома.Both specify the optional volume specifier (C: in both cases), but the first begins with the root of the specified volume, whereas the second does not

В результате первый путь является абсолютным из корневого каталога диска C:, тогда как второй — относительным из текущего каталога C:.As result, the first is an absolute path from the root directory of drive C:, whereas the second is a relative path from the current directory of drive C:. Использование второй формы пути в тех случаях, когда предполагается наличие первой, является распространенным источником ошибок, связанных с путями к файлам в Windows.Use of the second form when the first is intended is a common source of bugs that involve Windows file paths.

Чтобы определить, является ли путь к файлу полным (такой путь не зависит от текущего каталога и не изменяется при смене текущего каталога), можно вызвать метод IsPathFullyQualified.You can determine whether a file path is fully qualified (that is, it the path is independent of the current directory and does not change when the current directory changes) by calling the IsPathFullyQualified method

Обратите внимание, что такой путь может включать сегменты с относительным путем к каталогу ( и ), но при этом по-прежнему будет полным, если разрешенный путь всегда указывает на одно и то же место.Note that such a path can include relative directory segments ( and ) and still be fully qualified if the resolved path always points to the same location

В приведенном ниже примере показано различие между абсолютными и относительными путями.The following example illustrates the difference between absolute and relative paths. Предполагается, что каталог D:\FY2018\ существует и вы не установили какой-либо текущий каталог для диска D:\ из командной строки перед запуском этого примера.It assumes that the directory D:\FY2018\ exists, and that you haven’t set any current directory for D:\ from the command prompt before running the example.

Если вы хотите увидеть комментарии к коду, переведенные на языки, отличные от английского, сообщите нам на странице обсуждения этой проблемы на сайте GitHub.If you would like to see code comments translated to languages other than English, let us know in this GitHub discussion issue.

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

С этим вопросом у новичков обычно сложнее. Потому что теорию относительности люди как-то плохо понимают ))))

Разумеется, относительный путь к файлу — это тема намного более простая, чем вышеупомянутая теория Эйнштейна. Поэтому разберёмся и с ней.

Итак, однозначно можно определить местоположение файла, если известен полный путь к нему.

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

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

Сначала давайте вспомним про вложенные папки (каталоги).

Итак, всё начинается с диска. Диск — это корневой каталог. Корневой — потому что он первый в пути, и дальше “расти” уже некуда. Диск — это корень. А дальше растут стволы и ветви (папки), а на ветвях растут листья (файлы).

Соответственно каждая папка имеет родителя (кроме корневого каталога). Но не каждая папка имеет детей (то есть вложенные папки). Что поделаешь — не всем везёт в любви )))

Следовательно, у каждой папки могут быть (а могут и не быть) дочерние папки. И у каждой папки (кроме корневого каталога) есть родительские папки.

Следовательно, в общем случае папка может быть родительской относительно своих “детей”, и дочерней относительно своих “родителей”.

Здесь всё как в жизни — вы чей-то ребёнок, и также чей-то родитель (ну или скоро будете)))

Для вашей мамы вы ребёнок, а для ваших детей — мама (или папа).

А теперь наконец после долгих лирических отступлений перейдём к относительности путей. Итак, снова вспомним наш пример:

Здесь каталог 010 является дочерним относительно каталога 000, и он же является родительским по отношению к каталогу 100.

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

Например, если вы работаете в командной строке и находитесь в папке 100 из нашего примера, то для открытия файла 111.ТХТ вам не надо набирать полный путь к файлу — достаточно написать только имя файла.

Имя файла в данном случае и будет относительным путём. То есть относительный путь — это часть полного пути относительно текущего каталога.

Например, вы находитесь в папке 010. То есть выше находятся

а ниже находится каталог

Тогда относительный путь к файлу 111.ТХТ будет таким:

Так можно перемещаться вниз относительно текущего местоположения.

А можно ли перемещаться вверх?

Да, можно.

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

Например, если мы находимся здесь: С:\000\010\100, и в папке 010 у нас есть файл 011.ТХТ, то открыть его можно так:

А если в папке 000 у нас есть файл 001.ТХТ, то открыть его можно так:

Ну и так далее. Надеюсь, смысл вы уловили.

Как указать путь к папке?

Указать путь к папке. Главный вопрос нашей статьи на которого найдут ответа уважаемые ггости — это вопрос: Как указать путь к папке на виндовс и в начале статьи мы хотим рассказать именно про это. Для того что бы узнать адрес папки, предлагаем уважаемому читателю включить свой компьютер и войти в Мой Компьютер. Потом найти эту папку на которую хотите указать путь и взглянуть на верхнюю часть окна. На верхней части окна есть пункт под названием адрес и рядом с ним ячейка похожая на ту ячейку в нашем браузере к которому пишем адреса сайтов. На этой ячейке и будет адрес вашей папки. Скопируйте её и вставьте на документе в которым хотите указать адрес папки.

#2

ZIP папка. Многие люди скачивают с различных сайтов, файлы архивированные в формате ZIP и затрудняются их открыть. Мы хотим на протяжении этой статьи рассказать таким людям и об открытии такого формата архивов и соответственно продолжая читать, уважаемый гость узнает о том как открыть ZIP папку. Для того что бы открыть архивную папку ZIP, вам надо с начало скачать и установить программу ZIP архиватор WinRAR. Для скачки архиватора есть два способа: Можете поискать в Гуглу или в Яндексе данный архиватор либо установить ZIP архиватор с диска виндовс. На сегодняшний день на всех дисках в формате DVD с виндовс, есть дополнительные программы и среди дополнительных программ виндовса обязательно должно быть ZIP архиватор. После установки архиватора, просто кликните на архивный файл и она откроется.

#3

Удалить папку с диска C. Для тех кто не знает как удалить папку с диска C, объясняем: Сразу нужно сказать что в дике C удалить папки с названиями: Documents and settings, Program files и Windows не возможно. Но возможно удаления некоторых папок внутри этих папок которые Не относятся к системным программам или файлам. Если какой то файл который не имеет не какой принадлежности к системе, не удаляется — это может означать что в данной папке содержится вирус и не допускает к удалению.

#4

Папка Рабочий стол. Пред последняя тема нашей статьи посвящается вопросу: Как найти папку рабочий стол? Для того что бы найти папку рабочий стол, надо зайти в Мой Компьютер. Потом заходим в диск С и переходим в папку Documents and settings. На Documents and settings есть папка All users внутри которой и имеется папка Рабочий стол.

#5

Папка Windows 8. К сожалению наша статья близка концу и в конце нашей статьи мы хотим дать уважаемому читателю информацию о том, как удалить папку Windows 8. К сожалению папку Windows 8 удалить нельзя по тому что она обеспечивает работу виндовса. Но если кто то хочет удалить папку виндовс по тому что хочет установить другой, уверяем что по ходу установки нового виндовса папка Windows 8 сама стирается и пытаться удалить его до установки нового виндовса — бессмысленно.

Как прописать путь к файлу

Вернёмся к полному пути, который мы рассмотрели выше:

Если у вас есть такие папки и в этих папках есть такой файл, то вы можете ввести этот путь в командной строке, или прописать путь к файлу в адресной строке Проводника и нажать ENTER. Тогда файл откроется (если, конечно, у вас есть программа, которая сможет его открыть и с этой программой связан тип этого файла).

Командную строку можно вызвать комбинацией клавиш WIN+R или через меню ПУСК-ВЫПОЛНИТЬ.

Когда вы откроете командную строку, то можете непосредственно в ней ввести команду (в нашем случае командой будет путь к файлу) и нажать ENTER.

Если же вам любопытно немного помучиться и представить, как люди работали в DOS, то вы можете открыть командный интерпретатор. Для этого в командной строке наберите CMD (для Windows 2000 и выше) или COMMAND (для Windows 95/98/ME) и нажмите ENTER.

Откроется консоль (см. рис.), где вы можете вдоволь натешиться, вводя разные команды. Правда, для этого вы должны их знать — но это уже другая тема…


Что такое относительный путь к файлу?

С эти немного сложнее. Относительный путь к файлу указывается относительно расположения того файла в коде которого он указывается. Давайте разберём на конкретных примерах.

Пример 1.
Допустим, мы вставляем картинку в index.html, который лежит в папке с доменом. Там же в папке с доменом находится папка images с нашей картинкой.

Относительный путь будет выглядеть так:

PHP

1 img src=”imagesimage.png”>

Пример 2.
Нам нужно указать относительный путь к картинке в файле style.css, который лежит в папке CSS. При этом сама картинка находится не папке images.

В этом случае если мы просто напишем /images/image.png, как в предыдущем примере, то это не сработает!

Браузер будет воспринимать эту запись так: «Зайди в папку images, которая лежит рядом с файлом style.css и возьми там файл image.png». Проблема в том, что в рядом с style.css нет никакой папки images! Она находится на уровень выше.

В таком случае мы должны как бы сказать браузеру: «Сначала выйди из папки CSS, в которой лежит style.css в котором мы указываем наш абсолютный путь, а потом зайди в папку images и возьми там файл image.png»

На языке кода команда «выйди из папки» будет выглядеть так: ../

В итоге получим:

PHP

background: url(../images/image.png);

1 backgroundurl(..imagesimage.png);

Относительный путь указывается относительно того файла в коде которого вы указываете этот путь. То есть вы должны «объяснить» браузеру куда ему нужно идти чтобы найти нужный файл. При этом началом его «маршрута» будет местонахождения того файла, в котором вы пишете код.

Пример 3.

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

PHP

1 img src=”image.png”>

Особенности относительного пути:

  • для того чтобы его указать нужно представлять структуру файлов сайта
  • указанные адреса будут работать только в пределах вашего сайта
  • при переходе на https или смене домена все адреса будут по прежнем работать и их не нужно менять.

Относительный путь (адрес)

Что такое относительный путь к файлу?

Любая файловая система представляет собой строгую иерархию родительских и дочерних папок и файлов. Например: – здесь папка является дочерней для диска и родительской для файла .

Для наглядности давайте рассмотрим следующую иерархию:

  • C:\
  • file1.php
  • folder\
    • file.php
    • subfolder\

      file3.php

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

Чтобы из файла обратиться с файлу , нам нужно войти в подпапку , т.е. опуститься на один уровень ниже. Так мы получим путь: – относительно файла .

Давайте усложним задачу и обратимся из файла к файлу . Относительный путь будет иметь вид: – мы поднялись на два уровня выше. Выполнить обратное, т.е из файла обратимся к файлу . Относительный путь будет иметь вид: – мы опустимся на два уровня ниже.

Преимущества и недостатки относительного пути (адреса)

Очевидно, что относительный путь не содержит домашней папки и родительских папок. Таким образом, конечный адрес получается короче. Более того, в случае необходимости переезда с одного домена на другой не возникнет необходимости прописывать новый абсолютный адрес.

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

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

realpath и readlink не найдены

UNIX системы — это не только многочисленные дистрибутивы Linux. В некоторых из них команды realpath и readlink могут отсутствовать. Если они отсутствуют и вы не хотите или не можете устанавливать дополнительные бинарные файлы, то выход всё равно есть.

Создайте файл, например, realpath.sh и скопируйте в него:

#! /bin/sh
echo "$(cd "$(dirname "$1")"; pwd -P)/$(basename "$1")"

Запускать так:

bash realpath.sh ФАЙЛ

Этот же вариант в виде функции:

function realpath { echo $(cd $(dirname $1); pwd)/$(basename $1); }

Вот эта же функция в продвинутом варианте — дополнительно обрабатывает ситуацию, когда директория не существует, а также если во вводе присутствуют ‘..’ или ‘.’

get_abs_filename() {
  # $1 : relative filename
  filename=$1
  parentdir=$(dirname "${filename}")

  if ; then
      echo "$(cd "${filename}" && pwd)"
  elif ; then
    echo "$(cd "${parentdir}" && pwd)/$(basename "${filename}")"
  fi
}

Ещё один вариант в виде функции оболочки, который:

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

Код:

function abspath() {
    # генерирует абсолютный путь из относительного
    # $1     : относительное имя файла
    # возвращает : абсолютный путь
    if ; then
        # dir
        (cd "$1"; pwd)
    elif ; then
        # file
        if [[ $1 = /* ]]; then
            echo "$1"
        elif [[ $1 == */* ]]; then
            echo "$(cd "${1%/*}"; pwd)/${1##*/}"
        else
            echo "$(pwd)/$1"
        fi
    fi
}

И ещё одна функция, записанная в одну строку и работающая в bash и zsh (другие не проверялись):

abspath () { case "$1" in /*)printf "%s\n" "$1";; *)printf "%s\n" "$PWD/$1";; esac; }

Может работать с несуществующими файлами.

Ссылка на основную публикацию