Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Команда 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.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 энциклопедия игр text.txt user @ wikipedia: ~ $  cd games user @ wikipedia: ~ / games $

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

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

C: \> dirworkreports <DIR> Ср, 9 октября, 9:01games <DIR> Вт, 8 октября, 14:32энциклопедия <DIR> Пн, 1 октября, 10:05text txt 1903, чт, 10 октября, 12:43C: \> 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 сценарий обычно выполняется в подоболочке .

Параметры [ редактировать ]

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(т.е. на два уровня выше). Вы также можете использовать это косвенное обращение для доступа к подкаталогам. Итак, from /usr/bin/tmpвы можете использовать cd ../../localдля перехода к /usr/local.
  • cd -переключит вас в предыдущий каталог. Например, если вы вошли /usr/bin/tmpи перешли к /etc, вы можете ввести, cd -чтобы вернуться /usr/bin/tmp. Вы можете использовать это для переключения между двумя каталогами.

DOS, OS / 2, Windows, ReactOS [ править ]

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

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

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

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

См. Также [ править ]

  • Структура каталогов
  • pushd и popd
  • chroot
  • Список интерпретаторов командной строки

Ссылки [ править ]

  1. ^ «Справка JaTomes - Команды OS / 2» . www.jatomes.com .
  2. ^ «Введение в Tripos» (PDF) . Проверено 1 мая 2020 .
  3. ^ Рюгхаймер, Ханнес; Спаник, Кристиан (1 мая 1988 г.). «Краткий справочник по AmigaDOS» . Гранд-Рапидс, Mi: Abacus - через Интернет-архив.
  4. ^ "Reactos / reactos" . GitHub .
  5. ^ Wolverton, Ван (2003). Запуск MS-DOS версии 6.22 (20-я годовщина выпуска), 6-е исправленное издание . Microsoft Press . ISBN 0-7356-1812-7.
  6. ^ «Руководство пользователя DR DOS 6.0 Советы по оптимизации и настройке» (PDF) . Архивировано из оригинального (PDF) 30 сентября 2019 года . Проверено 13 августа 2019 .
  7. ^ «Оболочки EFI и сценарии» . Intel . Проверено 25 сентября 2013 .
  8. ^ "Справочное руководство по командам MPE / iX" (PDF) .
  9. ^ «Справочное руководство по командам OpenVOS» (PDF) . stratadoc.stratus.com . Проверено 12 сентября 2020 .
  10. ^ «11 октября 2010 г.» . Старая новая вещь .
  11. ^ "Изменить текущую папку - MATLAB cd" . www.mathworks.com .
  12. ^ "Справочник функций: компакт-диск" . octave.sourceforge.io .

Дальнейшее чтение [ править ]

  • Волвертон, Ван (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.

Внешние ссылки [ править ]

  • Windows XP> Справочник по командной строке AZ> Chdir (Cd) из Microsoft TechNet
  • cd: сменить рабочий каталог - Справочник по командам и утилитам, Единая спецификация UNIX , Выпуск 7 от Open Group