cd (команда)

Компьютерные команды в различных операционных системах
cd / chdir
Разработчик(и)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и тремя подкаталогами.

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

Если текущим рабочим каталогом пользователя является домашний каталог ( ~), то ввод команды 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 скрипт обычно выполняется в подоболочке .

Параметры

Unix, 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 .

DOS, OS/2, Windows, ReactOS

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

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

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

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

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

Ссылки

  1. ^ "JaTomes Help – OS/2 Commands". www.jatomes.com . Архивировано из оригинала 2019-04-14 . Получено 2019-08-11 .
  2. ^ "Введение в Tripos" (PDF) . Получено 2020-05-01 .
  3. ^ Рюгхаймер, Ханнес; Спаник, Кристиан (1 мая 1988 г.). Краткий справочник по AmigaDOS. Гранд-Рапидс, Мичиган: Abacus. ISBN 9781557550491– через Интернет-архив.
  4. ^ "Reactos/reactos". GitHub . 3 января 2022 г.
  5. ^ Wolverton, Van (2003). Running MS-DOS Version 6.22 (20th Anniversary Edition), 6th Revised edition . Microsoft Press . ISBN 0-7356-1812-7.
  6. ^ "DR DOS 6.0 User Guide Optimisation and Configuration Tips" (PDF) . Архивировано из оригинала (PDF) 2019-09-30 . Получено 2019-08-13 .
  7. ^ "EFI Shells and Scripting". Intel . Получено 2013-09-25 .
  8. ^ "MPE/iX Command Reference Manual" (PDF) . Архивировано из оригинала (PDF) 2018-10-21 . Получено 2018-10-21 .
  9. ^ "Справочное руководство по командам OpenVOS" (PDF) . stratadoc.stratus.com . Получено 12.09.2020 .
  10. ^ "11 октября 2010 г.". Старая новая вещь .
  11. ^ "Изменить текущую папку – MATLAB cd". www.mathworks.com .
  12. ^ "Ссылка на функцию: cd". octave.sourceforge.io .

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

  • Wolverton, Van (1990). Команды MS-DOS: Microsoft Quick Reference, 4-е пересмотренное издание . Microsoft Press . ISBN 978-1-55615-289-4.
  • Джон Пол Мюллер (2007). Администрирование Windows в командной строке для Windows Vista, Windows 2003, Windows XP и Windows 2000. John Wiley & Sons . ISBN 978-0-470-16579-9.
  • Барретт, Дэниел Дж. (2012). Карманный справочник терминала Macintosh: возьмите под контроль свой Mac . O'Reilly . ISBN 978-1-4493-2898-6.
Взято с "https://en.wikipedia.org/w/index.php?title=Cd_(command)&oldid=1246004895"