Windows обозначение текущей директории

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

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

Стоит заметить, что статья ограничивается только тем типом путей, который видит пользователь приложений Windows (обусловленный Win32 API). Под этим слоем есть ещё больше любопытного, в основном касающегося тех, кто пишет драйверы оборудования и тому подобное.

Вкратце

Форматы абсолютных путей

Форматы относительных путей

Запрещённые символы

Ограничения длины

Схемы путей Windows

В Windows существует три разных вида абсолютного пути и три разных типа относительного пути.

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

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

Пути к диску

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

D:\Doughnut preferences\With jam in

UNC-пути

UNC расшифровывается как Universal Naming Convention, это описание файлов, начинающееся с \\, часто используемое для ссылок на сетевые накопители. Первый сегмент после \\ — это хост, который может быть или сервером с именем, или IP-адресом:

\\Work\Hard
\\192.168.1.15\Hard

UNC-пути также можно использовать для доступа к локальным дискам:

\\localhost\C$\Users\Andrew Fletcher
\\127.0.0.1\C$\Users\Alan Wilder

Или с использованием имени компьютера:

\\Pipeline\C$\Users\Martin Gore

Символ $ в C$ обозначает скрытую административную общую папку; он не заменяет двоеточие рядом с именем диска :. Общие диски в стиле C$ — это просто удобные ярлыки, автоматически создаваемые Windows. Доступ к дискам через них возможен, только если вы вошли как администратор.

Стоит также заметить, что \\Pipeline сам по себе не валидный путь к папке, он идентифицирует только сервер. Чтобы попасть в папку, нужно добавить имя общей папки.

Пути к устройству

Путь к устройству начинается с одного из следующих фрагментов:

  • \\?\
  • \\.\

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

Синтаксис доступа к локальной папке выглядит как один из этих вариантов:

\\?\Z:\Animals\Cute
\\.\Z:\Animals\Cunning

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

\\?\Volume{59e01a55-88c5-411f-bf0b-92820bdb2548}\Animals\Cryptic

Здесь Volume{59e01a55-88c5-411e-bf0a-92820bdb2549} — это идентификатор дискового тома, на котором находится Z: в компьютере.

Также существует специальный синтаксис для описания UNC-путей как путей к устройству:

\\?\UNC\localhost\Z$\Animals\Curious

В путях к устройству часть, идущая после \\?\ или \\.\ — это имя, определённое во внутреннем пространстве имён Object Manager Windows. Те, кому любопытно исследовать это пространство имён, могут скачать инструмент WinObj и посмотреть.

Нормализованные и литеральные пути к устройству

Так в чём же разница между \\?\ и \\.\?

В обычном случае, когда вы передаёте путь операционной системе Windows, она очищает его, прежде чем использовать. Этот процесс называется нормализацией, подробнее о нём мы поговорим ниже.

Путь \\?\ пропускает этот этап очистки, а \\.\ не пропускает. Поэтому можно назвать пути \\?\ литеральными путями к устройству, а \\.\нормализованными путями к устройству.

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

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

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

Пути, относительные к текущей папке

Эти пути используют в качестве начальной точки текущую папку, например, .\Torquay относится к подпапке текущей папки, а ..\Wales относится к подпапке родителя текущей папки.

Папки, относительные к корню текущего диска

Если начать путь с одной \, то путь интерпретируется как относительный к корню текущего диска. Поэтому если вы находитесь в любом месте диска E: и введёте \Africa, то окажетесь в E:\Africa.

Когда доступ к текущей папке выполняется через UNC-путь, то путь, относительный к текущему диску, интерпретируется относительно к общей корневой папке, допустим \\Earth\Asia.

Пути, относительные к текущей папке диска

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

Это единственный тип путей, не поддерживаемый Fileside, потому что в нём нет понятия текущей папки каждого диска. Текущую папку имеют только панели.

Нормализация

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

  • Замена косых черт (/) на обратные косые черты (\)
  • Сворачивание повторяющихся разделителей в виде обратных косых черт в один
  • Резолвинг относительных путей заменой всех . или ..
  • Отсечение завершающих пробелов и точек

Таким образом, в общем случае можно указывать пути Windows при помощи косых черт.

Правила именования в Windows

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

Запрещённые символы

В имени нельзя использовать следующие символы:

< > " / \ | ? *

Также исключаются любые непечатаемые символы со значением ASCII меньше 32.

Хитрое двоеточие

В большинстве случаев : также запрещено.

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

Опасная точка

Символ . допустим внутри или в начале имени, но запрещён в конце.

Начинающие и завершающие пробелы

Любопытно, что Windows допускает пробелы в начале, но не в конце имён. Так как имя с пробелами в начале и конце часто выглядит похожим на имя без пробелов, обычно это ужасная идея, и при переименовании или создании файлов Fileside автоматически удаляет их.

Запрещённые имена

По историческим причинам нельзя использовать следующие имена:

CON, PRN, AUX, NUL, COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 и LPT9.

Это включает и имена с расширениями. Например, если вы назовёте файл COM1.txt, то внутри он преобразуется в \\.\COM1\ и интерпретируется самой Windows как устройство. А это не то, что нам нужно.

Чувствительность к регистру

В большинстве случаев Windows не делает различий между символами в верхнем и нижнем регистре в путях.

C:\Polish hamlet, c:\polish Hamlet, C:\Polish Hamlet и C:\POliSh hAMlET считаются абсолютно одинаковыми.

Однако с обновления Windows 10 за апрель 2018 года файловые системы NTFS имеют опцию включения чувствительности к регистру на уровне папок.

Ограничения длины

Мы ещё не закончили: ограничения есть и на длину.

Пути

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

Этот обход заключается в преобразовании каждого пути в литеральный путь к устройству перед передачей его Windows. Сделав это, мы сможем обойти ограничение в 260 символов и увеличить его до чуть более щедрого предела в 32767 символов.

Имена

Имена файлов и папок не могут быть длиннее 255 символов.

Так много способов сказать одно и то же

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

  • C:\CHAMELEON
  • c:\chameleon
  • C:\/\\//\\\///Chameleon
  • C:\Windows\..\Users\..\Chameleon
  • \\localhost\C$\Chameleon
  • \\127.0.0.1\C$\Chameleon
  • \\?\C:\Chameleon
  • \\.\C:\Chameleon
  • \\.\UNC\localhost\C$\Chameleon
  • \\?\Volume{59e01a55-88c5-411e-bf0a-92820bdb2549}\Chameleon
  • \\.\GLOBALROOT\Device\HarddiskVolume4\Chameleon
  • и так далее

Вот что получаешь, когда приходится обеспечивать полную обратную совместимость в течение нескольких десятилетий!

Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку

To display the current directory in the Command Prompt, use the `cd` command, which stands for «change directory» but can also be used to show the current directory when no additional path is specified.

Here’s the command in markdown format:

cd

Understanding Current Directory

What is Current Directory?

The current directory, often referred to as the current working directory (CWD), is the directory that your command line interface is operating within at any given time. This directory serves as the context for executing commands, meaning any command that works with files or directories will reference this location unless specified otherwise. Understanding your current directory is crucial for effective file management and command execution in CMD.

Why Knowing the Current Directory Matters

Knowing your current directory is essential for several reasons:

  • Execution Context: If you’re executing a command that interacts with files, knowing your CWD ensures that you’re targeting the right files. For instance, if you’re running a script that expects input files in a specific folder, being in the correct directory is critical.
  • Navigation Efficiency: It reduces confusion while navigating through directories. Without clear awareness of your current directory, you might accidentally attempt to access files in the wrong location.

Cmd Echo Current Directory: A Simple Guide

Cmd Echo Current Directory: A Simple Guide

Using the `CD` Command

One of the simplest commands to show the current directory in CMD is the `cd` command.

The `cd` command stands for change directory; however, if you run it without arguments, it simply displays the current directory you are in.

Example: To check your current directory, you would type the following command:

cd

When you execute this command, CMD will return the path of your current working directory. For example, you might see output that looks like:

C:\Users\YourName\Documents

This output informs you exactly where you are within the file system, allowing you to make safe and informed navigation decisions.

Using the `ECHO` Command with Environment Variables

Another effective way to display your current directory is by using the `ECHO` command alongside the `%CD%` environment variable.

The `%CD%` variable holds the path of the current working directory, making it impossible to forget where you are in the CMD context.

Example: To show your current directory with `ECHO`, type:

echo %CD%

Upon execution, CMD will output the exact path, similar to the previous method. This is particularly useful in scripts where you might want to log or print the current directory to track actions or outputs dynamically.

Mastering Cmd Current Directory with Ease

Mastering Cmd Current Directory with Ease

Practical Applications of Showing Current Directory

Navigating the File System

Understanding how to show your current directory aids significantly in navigating the file system. For example, if you wish to move to a specific subdirectory, it’s often helpful to first confirm your current location.

You can follow up the `cd` command to move deeper into the directory structure like so:

cd SubfolderName

Thus, knowing your starting point helps in avoiding errors and ambiguity while navigating.

Running Scripts

Knowing the current working directory is especially important when running scripts. Many batch files and scripts rely on relative paths, which depend on the CWD for proper execution.

For instance, if you have a script that processes files located in the current directory, you would ensure your CMD location correctly aligns with the intended file path.

Cmd Get Current Directory: A Handy Guide

Cmd Get Current Directory: A Handy Guide

Additional Tips for CMD Users

Changing the Current Directory

You can change your current directory at any time using the `cd` command. For example, if you wish to switch to the Downloads directory, you would execute:

cd C:\Users\YourName\Downloads

This command shifts your context to the Downloads directory, allowing you to operate from there.

Viewing Full Path of Files

If you want to see not just the current directory but also the files within it, using the `dir` command will display a list of all files and subdirectories along with their paths.

Example:

dir

This command will generate an output that lists all contents of the current directory, providing clarity on what files are available for access and manipulation.

Best Practices for CMD Usage

It is beneficial to maintain an organized folder structure to avoid confusion ever when working with CMD. Additionally, always verify your current directory before executing commands to minimize mistakes.

Mastering Cmd Directory Navigation Made Simple

Mastering Cmd Directory Navigation Made Simple

Common Issues and Troubleshooting

Command Not Recognized

If you encounter errors stating that a command is not recognized, ensure that you are typing the command correctly. Even a slight misspelling can lead to such problems.

Incorrect Directory Output

If you receive an unexpected output when using commands like `cd` or `echo %CD%`, double-check the syntax and confirm that you are in the expected CMD environment. Any active scripts or batch files running may also affect the output, so ensure they are terminated if need be.

Show Directory Cmd: A Quick Guide to Viewing Directories

Show Directory Cmd: A Quick Guide to Viewing Directories

Conclusion

The command to show the current directory is a foundational skill every CMD user should master. By understanding how to use both `cd` and `ECHO %CD%`, you can effectively navigate your file system and manage your operations with confidence. Continued practice with these commands enhances your command line skills, ultimately leading to greater efficiency in your computing tasks. Join us in our future posts for more insights and tips on mastering CMD!

Mastering Open Directory Cmd in Quick Steps

Mastering Open Directory Cmd in Quick Steps

Further Resources

Recommended Reading

We encourage checking out additional resources online for deeper insights into CMD and command line efficiency.

Tutorials and Practice Exercises

To solidify your understanding and skills, engage in practical exercises that challenge your navigation and command usage effectively.

Last Updated :
30 Sep, 2020

Cd is the abbreviation or synonym for chdir. It is a command found inside the Windows Command Processor (cmd) that allows for change of the current working directory of a shell instance. The CWD (Current Working Directory) is a path (of a directory) inside the file system, where the shell is currently working. The current working directory is essential for resolving relative paths. Cd is a generic command found in the Command Interpreter of most operating systems.

Description of the Command :
Displays the name of or changes the current directory.

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

..   Specifies that you want to change to the parent directory.

Type CD drive: to display the current directory in the specified drive.
Type CD without parameters to display the current drive and directory.
Use the /D switch to change the current drive in addition to changing the current directory for a drive.

  • Some of the output is truncated due to its large length.
  • In order to obtain the above text execute the cd /? command on cmd.
  • It should be noted that chdir is an alias for cd, and therefore can be replaced for all of its occurrences.

Using the Command :

  1. Displaying the Current Working Directory :
    Displaying the current working directory is not generally not required on cmd. This is because the default prompt in cmd displays the Current drive and path (CWD) along with the greater than sign ( > ) at all times ($P$G code). But for the sake of completeness, we would be describing it as well. To display the Current Working Directory, execute the cd command without any arguments.

    Syntax :

    cd

    Apparent from the above output, it is not necessary for us to print the cwd as it is already being displayed by the prompt. Throughout the article, we will be using C:\Users as our CWD.

  2. Changing the CWD :
    We can change the Current Working Directory to different paths in the system. The following are the options –

    1. To a Directory of Current Drive :
    To change the working directory, execute command cd followed by an absolute or relative path of the directory you are wanting to become the CWD. Where the path should qualify the following criteria –

    • The Path should be of a Directory.
    • The Directory should be existing.
    • Path can be absolute or relative. If a relative path is used, then the path should be relative to the CWD.

    Syntax :

    cd [Path]

    2. To a Directory of Another Drive :
    To change the working directory to another drive, execute command cd /D followed by a path to a directory. The path should qualify the following criteria –

    • The path should be absolute.
    • The path should contain the drive letter followed by a drive qualifier (DRIVE_LETTER & COLON).

    Syntax :

    cd /d [Path]

    3. An additional way to change the CWD to another drive without the usage of the cd command is to execute the drive letter followed by a colon.

    Syntax :

    (Drive_Letter):

Навигация

Основы командной строки

  • Как проверить, в какой директории мы находимся
  • Как посмотреть список файлов
  • Как переместиться в другую директорию

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

В командной строке все устроено иначе: после загрузки системы мы попадаем в режим ожидания ввода команды. Этот режим привязан к файловой системе. Можно сказать, что мы всегда находимся внутри какой-то директории, которую называют рабочей директорией (working directory).

В этом уроке мы поговорим о навигации по директориям через командную оболочку.

Как проверить, в какой директории мы находимся

Начнем с самого основного. Проверить, в какой директории мы сейчас находимся, можно командой pwd:

pwd

/Users/guest

Кстати, название команды pwd — это сокращение, которое расшифровывается как print working directory. Похожим образом устроены имена многих команд, что позволяет легче и быстрее их запомнить.

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

В приведенном примере есть две неожиданности для тех, кто привык пользоваться Windows:

  1. В начале указан не диск, а единый корневой каталог /. Это вершина файловой системы, внутри которой лежат все остальные файлы и директории
  2. Вместо обратных слэшей \ используются прямые слэши /

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

Как посмотреть список файлов

Изучим команду ls (сокращение от list). Она выводит список файлов и директорий в текущей рабочей директории:

ls

Desktop  Documents Downloads Library  Movies  Music  Pictures Public

Как переместиться в другую директорию

Еще одна полезная команда — cd (сокращение от change directory). С помощью нее мы перемещаемся по файловой структуре. Для этого ей нужно передать аргумент — директорию, в которую необходимо переместиться:

# Входим в директорию
cd Music
# Смотрим ее содержимое
ls

iTunes
# Смотрим текущую рабочую директорию
pwd

/Users/guest/Music
# Если имя директории содержит пробел, то его нужно экранировать с помощью `\`
cd Best\ music

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

  • Абсолютный путь начинается от корня
  • Относительный путь начинающийся от текущей рабочей директории

Выше мы указали относительный путь. Отличить их друг от друга очень легко:

  • Абсолютный — первым символом в пути идет /
  • Относительный — во всех остальных случаях

Когда мы используем относительный путь, команда cd считывает его и внутри себя пытается вычислить абсолютный путь. Она берет текущую рабочую директорию /Users/guest/ и присоединяет к ней Music. В итоге получается /Users/guest/Music.

Команда cd понимает и абсолютные, и относительные пути. Поэтому передавать ей можно что угодно:

# Неважно, в каком месте
cd /Users/guest/Music # Абсолютный путь

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

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

Теперь рассмотрим другую задачу. Предположим, что мы находимся в директории /Users/guest/Music. Как выйти из нее и попасть снова в /Users/guest? Мы уже знаем один способ — указать абсолютный путь и сделать cd:

cd /Users/guest

Но есть путь проще. Можно указать специальное значение .. и перейти на директорию уровнем выше:

# В директории /Users/guest/Music
cd ..
pwd

/Users/guest

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

# В директории /Users/guest/Music
# Выходим на два уровня вверх
cd ../..
pwd

/Users

Иногда в пути используется одинарная точка, которая означает текущую директорию. Например, вместо cd Music можно писать cd ./Music — разницы между этими выражениями нет.

Есть и третий вариант возврата в /Users/guest из директории /Users/guest/Music. Можно выполнить команду cd без аргументов, тогда мы перейдем в домашнюю директорию текущего пользователя:

# Из любого места
cd
pwd

/Users/guest

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

# Из любого места
cd ~/Music
pwd

/Users/guest/Music

Допустим, вы находитесь в домашней директории и хотите посмотреть файлы в поддиректории Music. Один способ вы уже знаете — для этого нужно перейти в директорию Music и выполнить программу ls.

Как обычно, есть другой способ. Команда ls также может принимать на вход аргумент — директорию, которую нужно проанализировать:

ls Music

iTunes

Как и в случае с командой cd, к аргументу ls применимы понятия абсолютных и относительных путей. Впрочем, это правило распространяется на большинство случаев, где передаются пути.

Команда cd - возвращает в предыдущую директорию. Другими словами, последовательный вызов этой команды переключает между двумя последними посещенными директориями.

Команды cd, ls и pwd вместе составляют основу навигации по файловой структуре. Зная их, вы никогда не потеряетесь и не запутаетесь.

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


Самостоятельная работа

Изучите содержимое директорий своей файловой системы. При перемещении между разделами с помощью команды cd используйте клавишу Tab для автозаполнения.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно


  • 130 курсов, 2000+ часов теории

  • 1000 практических заданий в браузере

  • 360 000 студентов

Наши выпускники работают в компаниях:

If you want to know the current location, in which folder or directory you are while using Windows CMD (Command Line Interface), you can make use of cd command,

Command: cd — This command can be used to displays the name of or to change the current directory.

Example:

D:\Games>cd
D:\Games

D:\Games>

Know Current Location in CMD

If you want to print the current location in a Shell Script you can wrap the cd with percentage sign example %cd%,

Example:

D:\Games>echo "Current Location is %cd%"
"Current Location is D:\Games"
@echo off

set location=%cd%
echo Your current dir is %location%
pause

Output:

C:\Users\C2c\Desktop>sample.bat
Your current dir is C:\Users\C2c\Desktop
Press any key to continue . . .

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Код ошибки 0x0000013a windows 10
  • Как установить игру с образа диска на windows 10
  • Самый лучший образ windows 10
  • Как загрузить windows с live cd
  • По axxon next система защиты windows linux