14

Исходя из вопроса: как сделать использование командной строки менее болезненным, каковы . и .. записи в наиболее проголосовавшем ответе? Я вижу это, когда выполняю команду dir но она не видна пользователю в виде файла.

Если вы не знаете, что я имею в виду, вот пример:

.
..
Su.exe
Sup.txt
SuperUser.COM

4 ответа4

37

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

пример:

подняться на 2 каталога:

cd ..\..\

или в системе на основе UNIX для запуска исполняемых двоичных файлов в текущем каталоге:

./program

Многие сценарии UNIX также будут использоваться. для представления текущего каталога, например, для сканирования файлов (Perl):

#!/usr/bin/perl

opendir ( DIR, "." ) || die "Error opening current directory\n";
while( ($f = readdir(DIR))){
     print("$f\n");
}
closedir(DIR);

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

9

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

Единственная точка . полезно в Linux, где вы хотите запустить исполняемый файл в текущем каталоге, поэтому вы вводите ./a.out потому что командная оболочка по умолчанию не ищет в текущем каталоге исполняемые файлы (по соображениям безопасности).

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

5

. это текущий каталог. Вам редко нужно использовать это; большинство команд принимает текущий каталог. .. следующий уровень выше; это довольно полезный ярлык. Если вы находитесь в C:\foo\bar и хотите перейти в C:\foo\bar2, вы можете сказать

cd ..\bar2

и вы будете в C:\foo\bar2. Если вы не хотите переходить на bar2, а хотите запустить только C:\foo\bar.exe, вы можете сказать

..\bar.exe

или ..\bar для запуска без возврата в родительский каталог. Конечно, это более полезно, когда вы представляете более длинный путь, чем C:\foo (например, "C:\Users\Daniel\My Dropbox\").

3

Они обозначают:

.

Текущий реж

.. 

Представляет родительский каталог

Так что если у вас есть исполняемый файл "su.exe" в:

  • Ваша переменная среды Path (скажем, C:\MyExecutables\su.exe)
  • Ваш текущий режиссёр
  • Ваш родительский реж.

Вы можете выполнить каждый как это:

 su.exe  

Выполняет тот в Пути

.\su.exe 

Выполняет тот в текущем каталоге

..\su.exe

Выполняет тот в родительском dir.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .