Разработчики) | 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 , [1] MetaComCo TRIPOS , [2] AmigaOS [3] (где если указан пустой путь , подразумевается cd ), Microsoft Windows , ReactOS , [4] и Linux . В MS-DOS он доступен в версиях 2 и новее. [5] DR - DOS 6.0 также включает в себя реализацию из cd
и chdir
команд. [6] Команда также доступна вэмулятор MS-DOS с открытым исходным кодом DOSBox и в оболочке EFI . [7] Он назван chdir
в HP MPE / iX . [8] Команда аналогична команде Stratus OpenVOS change_current_dir
. [9]
cd
часто включается непосредственно в интерпретатор командной строки. Это имеет место в большинстве оболочек Unix ( оболочка Bourne , tcsh , bash и т. Д.), В cmd.exe
Microsoft 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
, и тремя подкаталогами.
Если текущий рабочий каталог пользователя является домашним каталогом ( ~
), то при вводе команды с ls
последующим cd games
может быть получен следующий транскрипт:
user @ wikipedia: ~ $ ls workreports энциклопедия игр text.txt user @ wikipedia: ~ $ cd games user @ wikipedia: ~ / games $
Теперь пользователь находится в каталоге "игры".
Аналогичный сеанс в DOS (хотя концепция «домашнего каталога» может не применяться, в зависимости от конкретной версии [ расплывчато ] ) будет выглядеть следующим образом:
C: \> dirworkreports <DIR> Ср, 9 октября, 9:01 games <DIR> Вт, 8 октября, 14:32 энциклопедия <DIR> пн, 1 окт, 10:05 text txt 1903, чт, 10 октября, 12:43 C: \> cd игры C: \ игры>
DOS поддерживает отдельные рабочие каталоги для каждого диска , обозначенного буквами , а также имеет концепцию текущего рабочего диска. cd
Команда может быть использована для изменения рабочего каталога рабочего диска или другого буквенного привода. Ввод буквы диска в качестве отдельной команды изменяет рабочий диск, например C:
; в качестве альтернативы cd
с помощью /d
переключателя можно изменить рабочий диск и рабочий каталог этого диска за один шаг. Современные версии Windows имитируют это поведение для обратной совместимости с CMD.EXE . [10]
Обратите внимание, что выполнение cd
из командной строки без аргументов имеет разный эффект в разных операционных системах. Например, если cd
выполняется без аргументов в DOS, OS / 2 или Windows, отображается текущий рабочий каталог (эквивалент Unix pwd
). Если cd
в Unix выполняется без аргументов, пользователь возвращается в домашний каталог.
Выполнение cd
команды в сценарии или пакетном файле также имеет разный эффект в разных операционных системах. В DOS текущий каталог вызывающего может быть напрямую изменен использованием этой команды пакетным файлом . В Unix текущий каталог вызывающего абонента не изменяется при вызове команды сценарием cd
. Это связано с тем, что в 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
. Пользователь может использовать это для переключения между двумя каталогами.-p
Распечатайте окончательный стек каталогов, точно так же, как dirs.-n
Записи обертываются до того, как достигнут края экрана.-v
записи печатаются по одной в строке, им предшествуют их позиции в стопке.cd\
(Только для DOS и Windows) возвращается в корневой каталог. Следовательно, команда cd\subdir
всегда переводит пользователя в указанный подкаталог в корневом каталоге , независимо от того, где он находится на момент выполнения команды.В протоколе передачи файлов соответствующая команда записывается CWD
в потоке управления, но доступна, как и cd
в большинстве клиентских программ командной строки. Некоторые клиенты также имеют lcd
для изменения рабочего каталога л ocally.
Среды численных вычислений MATLAB и GNU Octave включают cd
функцию с аналогичной функциональностью. [11] [12] Команда также относится к интерпретаторам командной строки различного другого прикладного программного обеспечения.
В Викиучебнике есть книга на тему: Руководство по командам Windows. |
В Wikibook Guide to Unix есть страница по темам: Команды |