Что "." и ".." в каталоге?

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

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

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

4 ответа

Решение

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

пример:

подняться на 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);

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

.. is used to navigate up the hierarchy of the file system. It's useful when you don't want to type a long path, or when writing a script/program that doesn't know where exactly it will be installed but it knows that ../media/ should hold all the images/videos/icons etc.

Единственная точка . is useful in linux where you want to run an executable in the current directory so you type ./a.out because the command shell by default doesn't search the current directory for executable files (for security reasons).

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

. это текущий каталог. Вам редко нужно использовать это; большинство команд принимает текущий каталог. .. следующий уровень выше; это довольно полезный ярлык. Если вы находитесь в 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 \").

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

.

Текущий каталог

.. 

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

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

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

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

 su.exe  

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

.\su.exe 

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

..\su.exe

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

Другие вопросы по тегам