cd (команда) - cd (command)

cd / chdir
Plan 9 от Bell Labs (управление процессами) .png
Команда cdв сеансе rc, запущенном на Plan 9 от Bell Labs
Разработчики) AT&T Bell Laboratories , MetaComCo , Microsoft , IBM , DR , Novell , HP , JP Software , участники ReactOS
Операционная система Unix , Unix-like , V , DOS , MSX-DOS , FlexOS , OS / 2 , TRIPOS , Windows , MPE / iX , Plan 9 , Inferno , ReactOS , KolibriOS , SymbOS , DexOS
Платформа Кроссплатформенность
Тип Командование

Команда cd, также известная как chdir( ch ange dir ectory), представляет собой команду оболочки командной строки, используемую для изменения текущего рабочего каталога в различных операционных системах . Его можно использовать в сценариях оболочки и пакетных файлах .

Реализации

Команда была реализована в таких операционных системах, как Unix , DOS , IBM OS / 2 , MetaComCo TRIPOS , AmigaOS (если указан пустой путь , подразумевается cd ), Microsoft Windows , ReactOS и Linux . В MS-DOS он доступен в версиях 2 и новее. DR DOS 6.0 также включает в себя реализацию из cdи chdirкоманд. Команда также доступна в эмуляторе MS-DOS с открытым исходным кодом DOSBox и в оболочке EFI . Он назван chdirв HP MPE / iX . Команда аналогична команде Stratus OpenVOS change_current_dir .

cdчасто включается непосредственно в интерпретатор командной строки. Так обстоит дело с большинством оболочек Unix ( оболочка Bourne , tcsh , bash и т. Д.), В cmd.exeMicrosoft Windows NT / 2000 + и Windows PowerShell в Windows 7 + и COMMAND.COMв DOS / Microsoft Windows 3.x - 9x / ME .

Системный вызов , что эффекты команды в большинстве операционных систем , chdirчто определяется POSIX .

Оболочки командной строки в Windows обычно используют Windows API для изменения текущего рабочего каталога, тогда как в системах Unix cdвызывает функцию chdir() POSIX C. Это означает, что при выполнении команды не создается новый процесс для миграции в другой каталог, как в случае с другими командами, такими как ls . Вместо этого оболочка сама выполняет эту команду. Это происходит потому , что, когда новый процесс создается, дочерний процесс наследует каталог , в котором родительский процесс был создан. Если cdкоманда наследует каталог родительского процесса, то цель команды cd никогда не будет достигнута.

Windows PowerShell , объектно-ориентированная оболочка командной строки и язык сценариев Microsoft , выполняет cdкоманду ( командлет ) в процессе оболочки. Однако, поскольку PowerShell основан на .NET Framework и имеет другую архитектуру, чем предыдущие оболочки, все командлеты PowerShell, такие как lsи rmт. Д., Выполняются в процессе оболочки. Конечно, это неверно для устаревших команд, которые по-прежнему выполняются в отдельном процессе.

использование

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

Рассмотрим следующий подраздел файловой системы Unix, в котором показан домашний каталог пользователя (обозначенный как ~) с файлом text.txt, и тремя подкаталогами.

Пользовательский взгляд на файловую систему в Unix-подобных системах начинается с домашнего каталога (часто сокращенно ~). Оттуда дерево может распространяться на другие подкаталоги и / или файлы.

Если текущий рабочий каталог пользователя является домашним каталогом ( ~), то ввод команды, lsза которой следует, cd gamesможет привести к следующей расшифровке:

user@wikipedia:~$ ls
workreports games encyclopedia text.txt
user@wikipedia:~$ cd games
user@wikipedia:~/games$

Теперь пользователь находится в каталоге "игры".

Аналогичный сеанс в DOS (хотя концепция «домашнего каталога» может не применяться, в зависимости от конкретной версии) будет выглядеть следующим образом:

C:\> dir
workreports        <DIR>       Wed Oct 9th   9:01
games              <DIR>       Tue Oct 8th  14:32
encyclopedia       <DIR>       Mon Oct 1st  10:05
text        txt           1903 Thu Oct10th  12:43
C:\> cd games
C:\games>

DOS поддерживает отдельные рабочие каталоги для каждого диска , обозначенного буквами , а также имеет концепцию текущего рабочего диска. cdКоманда может быть использована для изменения рабочего каталога рабочего диска или другого буквенного привода. Ввод буквы диска в качестве отдельной команды изменяет рабочий диск, например C:; в качестве альтернативы cdс помощью /dпереключателя можно изменить рабочий диск и рабочий каталог этого диска за один шаг. Современные версии Windows имитируют это поведение для обратной совместимости с CMD.EXE .

Обратите внимание, что выполнение cdиз командной строки без аргументов имеет разный эффект в разных операционных системах. Например, если cdвыполняется без аргументов в DOS, OS / 2 или Windows, отображается текущий рабочий каталог (эквивалент Unix pwd). Если cdв Unix выполняется без аргументов, пользователь возвращается в домашний каталог.

Выполнение cdкоманды в сценарии или пакетном файле также имеет разный эффект в разных операционных системах. В DOS текущий каталог вызывающего может быть напрямую изменен использованием этой команды пакетным файлом . В Unix текущий каталог вызывающего абонента не изменяется при вызове команды сценарием cd. Это связано с тем, что в Unix сценарий обычно выполняется в подоболочке .

Параметры

Unix, Unix-подобный

  • cdсам по себе или cd ~всегда помещает пользователя в свой домашний каталог.
  • cd .оставит пользователя в том же каталоге, в котором он сейчас находится (т.е. текущий каталог не изменится). Это может быть полезно, если внутренний код оболочки пользователя не может работать с каталогом, в котором они воссоздаются; running cd .поместит их оболочку в воссозданный каталог.
  • cd ~username поместит пользователя в домашний каталог с именем пользователя.
  • cd dir(без a /) поместит пользователя в подкаталог; например, если они находятся в /usr, набрав cd binпоместит их в /usr/bin, в то время как cd /binпомещает их в /bin.
  • cd ..переместит пользователя на один каталог вверх. Итак, если они есть /usr/bin/tmp, cd ..перемещает их на /usr/bin, а cd ../..перемещает на /usr(то есть на два уровня вверх). Пользователь также может использовать это косвенное обращение для доступа к подкаталогам. Итак, из /usr/bin/tmp, они могут использовать cd ../../localдля перехода в /usr/local.
  • cd -переключит пользователя в предыдущий каталог. Например, если они вошли /usr/bin/tmpи перейдут в /etc, они могут ввести, cd -чтобы вернуться /usr/bin/tmp. Пользователь может использовать это для переключения между двумя каталогами.

ДОС, ОС / 2, Windows, ReactOS

  • никакие атрибуты не выводят полный путь к текущему каталогу.
  • -p Распечатайте окончательный стек каталогов, точно так же, как dirs.
  • -n Записи обертываются до того, как достигнут края экрана.
  • -v записи печатаются по одной в строке, им предшествуют их позиции в стопке.
  • cd\(Только для DOS и Windows) возвращается в корневой каталог. Следовательно, команда cd\subdirвсегда переводит пользователя в указанный подкаталог в корневом каталоге , независимо от того, где он находится на момент выполнения команды.

Интерпретаторы, отличные от оболочки операционной системы

В протоколе передачи файлов соответствующая команда записывается CWDв потоке управления, но доступна, как и cdв большинстве клиентских программ командной строки. Некоторые клиенты также имеют lcdдля изменения рабочего каталога л ocally.

В численных вычислительных средах MATLAB и GNU Octave включают в себя cd функцию с аналогичной функциональностью. Команда также относится к интерпретаторам командной строки различного другого прикладного программного обеспечения.

Смотрите также

использованная литература

дальнейшее чтение

  • Волвертон, Ван (1990). Команды MS-DOS: Краткий справочник Microsoft, 4-е исправленное издание . Microsoft Press . ISBN 978-1-55615-289-4.
  • Джон Пол Мюллер (2007). Администрирование Windows из командной строки для Windows Vista, Windows 2003, Windows XP и Windows 2000 . Джон Вили и сыновья . ISBN 978-0-470-16579-9.
  • Барретт, Дэниел Дж. (2012). Карманное руководство по терминалу Macintosh: командуйте своим Mac . О'Рейли . ISBN 978-1-4493-2898-6.

внешние ссылки