Chdir сменить текущий каталог


Chdir сменить текущий каталог

int chdir(const char * path );
int fchdir(int fd );

ОПИСАНИЕ

fchdir идентично chdir , только каталог задан в виде открытого файлового дескриптора.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


ОШИБКИ

Обычные ошибки для fchdir таковы: EBADF fd не является правильным дескриптором файла. EACCES В каталоге, заданном с помощью fd , не разрешен поиск.

ЗАМЕЧАНИЯ


СООТВЕТСТВИЕ СТАНДАРТАМ

Системный вызов fchdir совместим с SVr4, 4.4BSD and X/OPEN. SVr4 документирует дополнительные коды ошибок EIO, EINTR, и ENOLINK. X/OPEN документирует дополнительные коды ошибок EINTR и EIO.

Chdir (Cd)

Вывод имени текущего каталога или переход в другую папку. При использовании только с именем диска (например chdir C:) команда chdir выводит имена текущих диска и папки. Выполненная без параметров команда chdir выводит текущие диск и каталог.

Синтаксис

Параметры

Заметки

  • Работа с расширениями командного процессора

Если расширения командного процессора разрешены (задано по умолчанию), имена папок в пути к текущему каталогу отображаются точно так же, как на жестком диске, в том же формате имен папок с учетом регистра. Например, если имя папки на жестком диске C:\Temp, команда CD C:\TEMP задает текущий каталог C:\Temp, соответствующий формату имени этой папки на жестком диске.

Чтобы запретить расширения командного процессора для определенного процесса, введите следующую команду:

Если расширения командного процессора запрещены, в команде chdir нельзя использовать пробелы в качестве разделителей. Таким образом, можно перейти в подкаталог, имя которого содержит пробел, не заключая параметр [путь] в кавычки. Например, следующий путь позволяет перейти в подкаталог \Start menu.

cd \winnt\profiles\username\programs\start menu

Для получения дополнительных сведений о разрешении и запрещении расширений командного процессора щелкните ссылку CMD.


Переход в корневой каталог

Корневой каталог является вершиной дерева каталогов на диске. Чтобы перейти в корневой каталог, введите следующую команду:

Переход из основного каталога одного диска в основной каталог другого

Чтобы перейти в основной каталог диска отличного от текущего, введите следующую команду:

Чтобы проверить переход к этому каталогу, введите одну из следующих команд:

  • Команда chdir с другими параметрами доступна в консоли восстановления.
  • Примеры

    Используемая с именем диска команда chdir позволяет перейти в текущий каталог этого диска. Например, если ввести команду cd c: в приглашении каталога C:\Temp, отобразится следующая строка:

    Чтобы перейти в текущий каталог Reports, введите одну из следующих команд:

    Чтобы перейти из текущего каталога в подкаталог \Specials\Sponsors, введите следующую команду:

    Или, если текущим каталогом является \Specials, введите следующую команду, чтобы перейти в подкаталог \Specials\Sponsors:

    Чтобы перейти из подкаталога в родительский каталог, введите следующую команду:

    Для вывода на экран имени текущего каталога можно использовать команду chdir или cd без параметров. Например, если текущим каталогом является \Public\Jones на диске B, вызов команды chdir приведет к следующему результату:

    Если при работе на диске D требуется скопировать все файлы каталогов \Public\Jones и \Public\Lewis на диске C в корневой каталог диска D, введите следующую последовательность команд:

    Если требуется скопировать все файлы каталогов \Public\Jones и \Public\Lewis в текущий каталог диска D, введите следующие команды:

    Илон Маск рекомендует:  Что такое код swf_actionprevframe

    Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).

    Какой в Python 3.6 есть аналог команде “cd” для смены рабочей директории из интерпретатора?

    Но ни один из способов не сработал в интерпретаторе:

    Как мне правильно сменить директорию из интерпретатора?

    3 ответа 3


    Изменить рабочую директорию можно, например, так:

    Update:

    В случае с Windows есть два важных нюанса:

    1. Путь необходимо обрамлять кавычками
    2. Обратные слэши в пути к целевой папке необходимо дублировать

    Т.е. конкретный пример для вашего случая становится таким:

    p.s. за уточнение спасибо пользователю @tanatonaut

    Добавьте Python в системную переменную, делается это так:

    ПКМ по Мой компьютер > Свойства > Дополнительные параметры системы > Переменные среды > Выбираете переменную Path > Изменить > Вставляете туда путь к Python .

    chdir

    меняет текущую директорию Scilab’а

    меняет текущую директорию Scilab’а

    Синтаксис

    Аргументы

    логическое значение: %t , если работа chdir завершилась успешно

    символьная строка: путь

    символьная строка: настоящее название пути после преобразования имени пути (см. ниже)

    Описание

    Изменение текущей директории Scilab’а на ту, которая указана в path . Обратите внимание, что выполняется преобразование пути и, например, SCI/modules/core/macros является корректным как для Unix, так и для Windows. Если путь path не указан (пуст), то производится смена на «домашнюю» директорию.

    не меняется каталог в CMD командами cd и chdir

    Chdir (Cd) — Вывод имени текущего каталога или переход в другую папку. При использовании только с именем диска (например chdir C:) команда chdir выводит имена текущих диска и папки. Выполненная без параметров команда chdir выводит текущие диск и каталог.

    chdir [[/d] [диск:] [путь] [..]] [[/d] [диск:] [путь] [..]]

    cd [[/d] [диск:] [путь] [..]] [[/d] [диск:] [путь] [..]]
    Параметры
    /d Смена текущего диска или текущего каталога на диске. [диск:] [путь] Задание имени диска (если он отличается от текущего) и каталога, в который требуется перейти. [..] Переход в родительскую папку. /? Отображение справки в командной строке.

    Команды CD и CHDIR используется для просмотра или изменения пути текущего каталога .


    Формат командной строки:

    CHDIR [/D] [диск:] [путь]
    CHDIR [..]

    Команда CD диск: отображает имя текущего каталога указанного диска.
    Команда CD без параметров отображает имена текущих диска и каталога.

    Параметр /D используется для одновременной смены
    текущих диска и каталога.

    Изменение команды CHDIR при включении расширенной обработки команд:

    Имя текущего каталога в строке вызова преобразуется к тому же регистру
    символов, что и для существующих имен на диске. Так, команда CD C:\TEMP
    или cd c:\temp на самом деле сделает текущим каталог C:\Temp, если он существует на диске.

    Команда CHDIR перестает рассматривать пробелы как разделители, что позволяет
    перейти в подкаталог, имя которого содержит пробелы, не заключая все имя
    каталога в кавычки. Например:

    chdir \windows\users\username\programs\start menu

    приводит к тому же результату, что и:

    cd «\windows\users\username\programs\start menu»

    Измените текущий рабочий каталог на С++

    Как я могу изменить текущую рабочую директорию на С++ агентом-агностиком?

    Я нашел заголовочный файл direct.h , совместимый с Windows, и unistd.h , совместимый с UNIX/POSIX.

    Функция chdir работает как на POSIX (manpage), так и на Windows (называется _chdir , но существует псевдоним chdir ).

    Обе реализации возвращают нуль при успехе и -1 при ошибке. Как видно из man-страницы, в POSIX-варианте возможны более выдающиеся значения errno, но это не должно действительно иметь значения для большинства случаев использования.

    Для С++ boost:: filesystem:: current_path (прототипы прототипов и геттеров).

    В стандарт будет добавлена ​​библиотека файловой системы на основе Boost.Filesystem .

    Выполняет ли chdir() то, что вы хотите? Он работает как в POSIX, так и в Windows.

    Этот кросс-платформенный пример кода для изменения рабочего каталога с использованием POSIX chdir и MS _chdir как рекомендуется в этом ответе. Аналогично для определения текущего рабочего каталога используются аналогичные getcwd и _getcwd .

    Илон Маск рекомендует:  array_search - Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в

    Эти различия в платформе скрыты за макросами cd и cwd .

    Согласно документации, подпись chdir — это int chdir(const char *path) где path является абсолютным или относительным. chdir вернет 0 в случае успеха. getcwd немного сложнее, потому что ему нужен (в одном варианте) буфер для хранения извлеченного пути, как видно из char *getcwd(char *buf, size_t size) . В случае ошибки он возвращает NULL и указатель на тот же переданный буфер в случае успеха. Пример кода напрямую использует этот возвращенный указатель на символ.

    Пример основан на @MarcD, но исправляет утечку памяти. Кроме того, я стремился к краткости, отсутствию зависимостей и только базовой проверке ошибок/ошибок, а также обеспечению того, чтобы она работала на нескольких (общих) платформах.

    Я тестировал его на OSX 10.11.6, Centos7 и Win10. Для OSX и Centos я использовал g++ changedir.cpp -o changedir для сборки и запускался как ./changedir


    На Win10 я cl.exe changedir.cpp/EHsc/nologo с cl.exe changedir.cpp/EHsc/nologo .

    Решение MVP

    Листинг OSX:

    $ g++ changeir.c -o changeir
    тестирование
    CWD:/Пользователи/Фил
    CWD изменен на:/Пользователи/Фил/тестирование

    Список Centos:

    $ g++ changeir.c -o changeir
    $./changedir
    Каталог не предоставлен
    $./changedir does_not_exist
    CWD: /home/phil
    $./changedir Музыка
    CWD: /home/phil
    CWD изменен на: /home/phil/Music
    $./changedir/
    CWD: /home/phil
    CWD изменен на:/

    Win10 Listing

    cl.exe changeir.cpp/EHsc/nologo
    changedir.cpp

    Тест c:\Users\Phil> changeir.exe
    CWD: c:\Users\Phil
    CWD изменено на: c:\Users\Phil\test

    Примечание: OSX использует clang и Centos gnu gcc за g++ .

    Как использовать chdir для изменения в текущем каталоге?

    Я пытаюсь включить файл из другого каталога, а затем вернуть chdir в текущую/оригинальную форму.

    В любом случае, чтобы изменить chdir обратно туда, где находится файл .php? или мне нужно сделать это вручную?

    3 ответа

    7 Решение Vlad Balmos [2011-10-28 09:00:00]

    Сначала вам нужно сохранить текущий путь, прежде чем менять dirs:

    Зачем вам нужно изменить dirs, чтобы включить файл?

    0 Mat [2011-10-28 09:01:00]

    Сохраните текущий каталог ( getcwd ) перед тем, как вы chdir . Затем chdir назад.

    0 Alexei T [2015-03-16 14:45:00]

    Вы можете сделать так: chdir (‘../’); Но действительно не уверен в правильном поведении

    Chdir сменить текущий каталог

    Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

    _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
    || /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L


    ОПИСАНИЕ

    fchdir() идентичен chdir(); разница в том, что каталог указывается в виде открытого файлового дескриптора.

    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

    ОШИБКИ

    Наиболее распространённые ошибки fchdir():

    EACCES Запрещён поиск в каталоге, на который указывает fd. EBADF Значение fd не является правильным файловым дескриптором.

    СООТВЕТСТВИЕ СТАНДАРТАМ

    ЗАМЕЧАНИЯ

    Дочерний процесс, созданный посредством fork(2), наследует текущий рабочий каталог родителя. Текущий рабочий каталог не меняется execve(2).

    Изменение текущего рабочего каталога в C++

    Как я могу изменить свой текущий рабочий каталог на C++ агностическим способом платформы?

    нашел direct.h файл заголовка, который совместим с Windows, и unistd.h , который совместим с UNIX / POSIX.

    8 ответов

    на chdir функция работает на обоих POSIX (manpage) и Windows (называется _chdir там только псевдоним ).

    обе реализации возвращают ноль при успехе и -1 при ошибке. Как вы можете видеть в manpage, более различающиеся значения errno возможны в варианте POSIX, но это не должно иметь значения для большинства случаев использования.

    библиотека файловой системы на основе Boost.Файловая система будет добавлен в стандарт.

    тут chdir() делать то, что вы хотите? Он работает как под POSIX, так и под Windows.

    этот кросс-платформенный пример кода для изменения рабочего каталога с помощью POSIX chdir и MS _chdir как рекомендуют в ответ. Аналогично для определения текущего рабочего каталога, аналогичный getcwd и _getcwd есть.

    Илон Маск рекомендует:  Краткий ликбез Что такое драйвер, для чего он нужен

    эти различия платформы скрыты за макросами cd и cwd .

    согласно документации, chdir ‘подпись S составляет int chdir(const char *path) здесь path is абсолютный или относительный. chdir вернет 0 при успехе. getcwd немного сложнее, потому что ему нужен (в одном варианте) буфер для хранения извлеченного пути, как показано в char *getcwd(char *buf, size_t size) . Он возвращает NULL при сбое и указатель на тот же переданный буфер при успехе. Образец кода использует этот возвращенный указатель char напрямую.

    образец основан на @MarcD, но исправляет утечку памяти. Кроме того, я стремился к сжатию, без зависимостей и только к основному сбою/ошибке проверка, а также обеспечение его работы на нескольких (общих) платформах.

    Я тестировал его на OSX 10.11.6, Centos7 и Win10. Для OSX & Centos я использовал g++ changedir.cpp -o changedir построить и запустить как ./changedir

    на Win10, я построил с cl.exe changedir.cpp /EHsc /nologo .

    решение MVP


    OSX листинг:

    $ g++ changedir.c-o changedir
    $ ./испытания changedir
    CWD:/пользователи / Phil
    CWD изменен на:/Users/Phil / testing

    Centos Листинг:

    $ g++ changedir.c-o changedir
    $ ./changedir
    Каталог не предоставляется
    $ ./does_not_exist changedir
    CWD:/главная / Фил
    $ ./ changedir Music
    CWD:/главная / Фил
    CWD изменено на: / home/phil / Music
    $ ./changedir /
    CWD:/главная / Фил
    CWD изменен на: /

    Win10 Листинг

    cl.exe changedir.cpp /EHsc / nologo
    changedir.cpp

    c:\Users\Phil > changedir.ехе тест
    CWD: c:\Users\Phil
    CWD изменен на: c:\Users\Phil\test

    Примечание: OSX использует clang и Centos gnu gcc за g++ .

    вы хотите chdir(2) . Если вы пытаетесь заставить свою программу изменить рабочий каталог вашей оболочки — вы не можете. Есть много ответов на SO, уже решающих эту проблему.

    вы имели в виду C или C++? Это совершенно разные языки.

    в C стандарт, определяющий язык, не охватывает каталоги. Многие платформы, поддерживающие каталоги, имеют chdir функция, которая принимает char* или const char* аргумент, но даже там, где он существует, заголовок, где он объявлен, не является стандартным. Также могут быть тонкости относительно того, что означает аргумент (например, Windows имеет каталоги на диске).

    в C++ поиск в интернете приводит к chdir и _chdir , и предполагает, что Boost не имеет интерфейса для chdir. Но я не буду комментировать дальше, так как я не знаю C++.

    Не могу поверить, что никто еще не претендовал на награду за это.

    вот кросс-платформенная реализация, которая получает и изменяет текущий рабочий каталог с помощью C++. Все, что требуется, это немного магии макросов, чтобы прочитать значение argv[0] и определить несколько небольших функций.

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

    текущий рабочий каталог : c:\Windows Изменение каталога. Текущий рабочий каталог теперь : c:\ctwoplus\progcode\test\CWD

    хороший кросс-платформенный способ изменить текущий каталог на C++ был предложен давно @pepper_chico. Это решение использует boost::filesystem::current_path() .

    для получения текущего рабочего каталога используйте:

    для установки текущего рабочего каталога используйте:

    Ниже приведены автономные вспомогательные функции:

    вот мой полный пример кода о том, как установить / получить текущую работу каталог:

    если boost установленный в вашей системе вы можете использовать следующую команду для компиляции этого образца:

    Функция Chdir

    Функция Chdir изменяет каталог.
    Параметр Directory должен содержать новый текущий каталог.

    Функция Chdir изменяет текущий каталог PHP на указанный в качестве параметра Directory.

    Функция Chdir возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае ошибки создает исключение уровня E_WARNING:
    Пример использования:
    Результатом выполнения данного примера будет что-то подобное:

    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL