Разработчик(и) | AT&T Bell Laboratories , MetaComCo , Microsoft , IBM , DR , Novell , HP , JP Software , Участники ReactOS |
---|---|
Операционная система | Unix , Unix-подобный , V , DOS , MSX-DOS , FlexOS , OS/2 , TRIPOS , Windows , MPE/iX , Plan 9 , Inferno , ReactOS , KolibriOS , SymbOS |
Платформа | Кроссплатформенный |
Тип | Команда |
Команда cd
, также известная как chdir
( change 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] Она названа в HP MPE/iX . [8] Команда аналогична команде Stratus OpenVOS . [9] chdir
change_current_dir
cd
часто включается встроенным непосредственно в интерпретатор командной строки. Это имеет место в большинстве оболочек Unix ( Bourne shell , tcsh , bash и т. д.), cmd.exe
в Microsoft Windows NT / 2000 + и Windows PowerShell в Windows 7 + и COMMAND.COM
в DOS/Microsoft Windows 3.x - 9x / ME .
Системный вызов , который выполняет команду в большинстве операционных систем, chdir
определен в POSIX .
Оболочки командной строки в Windows обычно используют API Windows для изменения текущего рабочего каталога, тогда как в системах 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 игры user@wikipedia:~/games$
Теперь пользователь находится в каталоге «игры».
Подобный сеанс в DOS (хотя концепция «домашнего каталога» может не применяться в зависимости от конкретной версии [ неопределенно ] ) будет выглядеть следующим образом:
C:\> каталогworkreports <DIR> Ср 9 окт 9:01игры <DIR> Вт окт 8th 14:32энциклопедия <DIR> Пн 1 окт 10:05текст txt 1903 Чт Окт 10th 12:43C:\> компакт-диски с играмиC:\игры>
DOS поддерживает отдельные рабочие каталоги для каждого буквенного диска , а также имеет концепцию текущего рабочего диска. cd
Команда может использоваться для изменения рабочего каталога рабочего диска или другого буквенного диска. Ввод буквы диска как команды сам по себе изменяет рабочий диск, например C:
; в качестве альтернативы, cd
с помощью /d
переключателя можно изменить рабочий диск и рабочий каталог этого диска за один шаг. Современные версии Windows имитируют это поведение для обратной совместимости под CMD.EXE . [10]
Обратите внимание, что выполнение cd
из командной строки без аргументов имеет разные эффекты в разных операционных системах. Например, если выполняется без аргументов в DOS, OS/2 или Windows, отображается cd
текущий рабочий каталогpwd
(эквивалент Unix ). Если cd
выполняется без аргументов в Unix, пользователь возвращается в домашний каталог.
Выполнение cd
команды в скрипте или пакетном файле также имеет разные эффекты в разных операционных системах. В DOS текущий каталог вызывающего может быть напрямую изменен с помощью пакетного файла , использующего эту команду. В Unix текущий каталог вызывающего не изменяется при вызове команды скриптом cd
. Это связано с тем, что в Unix скрипт обычно выполняется в подоболочке .
cd
сам по себе или cd ~
всегда помещает пользователя в его домашний каталог.cd .
оставит пользователя в том же каталоге, в котором он находится в данный момент (т.е. текущий каталог не изменится). Это может быть полезно, если внутренний код оболочки пользователя не может справиться с каталогом, в котором он находится, при его воссоздании; запуск cd .
поместит его оболочку в воссозданный каталог.cd ~username
поместит пользователя в его домашний каталог.cd dir
(без /
) поместит пользователя в подкаталог; например, если он находится в /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
. Пользователь может использовать это для переключения между двумя каталогами без pushd и popd .-p
Распечатать окончательный стек каталогов, как и dirs.-n
Записи переносятся до того, как они достигнут края экрана.-v
Записи печатаются по одной в строке, перед ними указывается их положение в стеке.cd\
(Только для DOS и Windows) возвращает в корневой каталог. Следовательно, команда cd\subdir
всегда переводит пользователя в указанный подкаталог корневого каталога , независимо от того, где он находится в момент подачи команды.В протоколе передачи файлов соответствующая команда прописывается CWD
в потоке управления, но доступна как cd
в большинстве клиентских программ командной строки. Некоторые клиенты также имеют lcd
для изменения рабочего каталога локально .
Среды численных вычислений MATLAB и GNU Octave включают cd
функцию с похожей функциональностью. [11] [ 12] Команда также относится к интерпретаторам командной строки различных других прикладных программ.