Смена каталога с помощью cd
Смените каталог легко, если вы знаете где вы находитесь в данный момент (ваш текущий каталог) и куда вы хотите отправиться. Каталог, в который вы хотите попасть, выше или ниже текущего?
Чтобы сменить каталог, выполните команду cd . Команда в таком виде перенесёт вас в ваш домашний каталог; чтобы перейти в другой каталог необходимо указать путь к нему.
Вы можете использовать абсолютные или относительные пути. Абсолютные пути указываются от верхнего каталога / (называемого корнем) до указанного каталога; относительные пути указываются от текущего каталога, где бы он не находился. Дерево, показанное ниже, приведено в качестве примера, помогающего понять команду cd .
/ directory1 directory2 directory3
Если вы находитесь в directory3 и хотите перейти в directory1 , вы должны подняться в дереве каталогов выше.
Если вы введете:
находясь в каталоге directory3 , вы получите сообщение об ошибке, сообщающее о том, что нет такого каталога. Это происходит потому что, действительно, нет каталога directory1 в каталоге directory3 .
Чтобы подняться к каталогу directory1 , вы должны ввести:
Это абсолютный путь. Он указывает Linux начать сверху и опуститься в каталог directory1 .
Запомните, абсолютные пути перенесут вас В любой каталог ИЗ любого, а относительные пути, перенесут вас в каталоги, расположенные ниже текущего.
Рисунок 10-3. Абсолютные пути указывают полный путь
Путь является абсолютным, если первый символ в нём / ; в противном случае это относительный путь.
Рисунок 10-4. Относительные пути указываются относительно текущего расположения
Ниже приведено упражнение с относительными и абсолютными путями. В вашем домашнем каталоге введите относительный путь:
Команда cd .. указывает системе подняться на один уровень выше текущего каталога. Очевидно, команда cd ../.. перенесёт вас выше на два каталога.
Выполнив полностью команды этого примера, вы должны оказаться в каталоге /X11 , в котором хранятся конфигурационные файлы и каталоги, относящиеся к X Window System.
Взгляните на последнюю команду cd . Вы должны указать системе:
Подняться на один уровень выше к родительскому каталогу вашего домашнего каталога (вероятно, это будет /home )
Затем поднимитесь к родительскому каталога текущего (вероятно, вы окажетесь в / )
Затем спуститесь к каталогу etc
Наконец, перейдите в каталог /X11
Укажите абсолютный путь, чтобы быстрее перейти к каталогу /X11 . Введите:
Всегда проверяйте где вы находитесь, прежде чем указать относительный путь к каталогу или файлу. Однако если вы будете использовать абсолютные пути, вам не придётся задумывать об этом. Если вы не знаете, где вы находитесь, введите pwd .
Таблица 10-2. Параметры команды cd
| Команда | Функция |
|---|---|
| cd | переносит вас в ваш домашний каталог |
| cd ~ | также переносит вас в ваш домашний каталог |
| cd / | переносит вас в корневой каталог всей системы |
| cd /root | переносит вас в домашний каталог пользователя root, или супер-пользователя, учётной записи, созданной во время установки системы |
| cd /home | переносит вас в каталоге home, в котором находятся каталоги пользователей |
| cd .. | переносит вас на один уровень выше |
| cd ~otheruser | переносит вас в домашний каталог пользователя otheruser , если только пользователь otheruser дал вам соответствующие разрешения |
| cd /dir1/subdirfoo | Вне зависимости от того, где вы находитесь, этот абсолютный путь перенесёт вас прямо в каталог subdirfoo , подкаталога, вложенного в dir1 |
| cd ../../dir3/X11 | Этот относительный путь сначала поднимет вас на два уровня выше, затем спустит в dir3, и наконец, в каталог X11. |
Теперь когда вы начали понимать как менять каталоги, посмотрите, что произойдет, если вы перейдёте в домашний каталог пользователя root (суперпользователя). Введите:
Если вы не зарегистрированы под именем root, при обращении к этому каталогу вы получите сообщение «в доступе отказано».
Запрещая доступ к учётным записям root и других пользователей (или их домашним каталогам), ваша система Linux защищается от случайного или преднамеренного повреждения. Обратитесь к разделу Владение и разрешения
Чтобы перейти в каталог root, воспользуйтесь командой su . Введите эту последовательность команд:
[newuser@localhost newuser]$ su Password: ваш пароль root [root@localhost newuser]# cd /root [root@localhost /root]#
Как только вы введете правильный пароль root, вы заметите, что ваше приглашение изменилось и теперь в нём отмечено ваше звание суперпользователя, в начале приглашения учётной записи root отображается символ «#» (как показано на Рисунке 10-5 ).
Рисунок 10-5. Превращение в root
Теперь, если вы выполните cd для перехода к домашнему каталогу пользователя root, вы получите к нему доступ.
Завершив работу под именем root, просто введите в приглашении exit .
[root@localhost /root]# exit exit [newuser@localhost newuser]$
| Назад | Начало | Вперед |
| Определение вашего текущего каталога с помощью pwd | Вверх | Просмотр содержимого каталога с помощью ls |
sasstr / Команды в Git Bash консоли
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| Команды в Git Bash консоли |
| clear — Очистить консоль |
| Навигация |
| pwd — Показать текущий каталог |
| ls — Показать файлы в данной папке, кроме скрытых |
| ls -f — Показать файлы в данной папке, включая и скрытые |
| cd c:/ — Перейти в конкретный каталог |
| cd — — Вернуться назад |
| cd .. — Выйти на 1 уровень вверх |
| cd ../.. — Выйти на 2 уровня вверх |
| Создание каталогов |
| mkdir — Создать папку |
| cd !$ — Перейти в только что созданную папку |
| mkdir -p — Создать сразу несколько папок |
| mkdir -p app/ — Создать сразу несколько вложенных папок |
| Создание файлов |
| touch index.html — Создать файл index.html |
| touch app/ — Создать сразу несколько файлов, никаких лишних пробелов быть не должно |
| Удаление файлов |
| touch — позволяет создавать файлы |
| rm test — Удалить пустую папку test |
| rm -r test — Удалить папку test с файлами внутри неё |
| Перемещение файлов |
| mv app1/*.* app2 — Переместить все файлы из папки app1 в папку app2 |
jt3k commented Jun 26, 2020 •
Почему все вокруг копируют на разбираясь cd c:/ ?
Я не уверен но по-моему это команда для шиндовс указывающая на переход в корень диска цэ.
Но баг как правило в юникс-подобных операционных системах, а в юнткс-подобных ос никаких дисков цэ не существует
petroDavydov commented Nov 28, 2021 •
У мен сработало в Bash cd d:/
jt3k commented Dec 6, 2021 •
Ну ок, тогда ладно. У меня в линуксах не сработает
AntooxaD commented Apr 15, 2022 •
ls — Показать файлы в данной папке, кроме скрытых
ls -f — Показать файлы в данной папке, включая и скрытые
НАОБОРОТ. ls — показывает все файлы и скрытые! А ls -f все кроме скрытых! По крайней мере у меня так на виндовс! может на Mac по другому
MaxOnRem commented Sep 18, 2022
нет, всё написано правильно, флаг показывает все включая скрытые, а еще команда ls -a так же работает
jt3k commented Oct 10, 2022 •
нет, всё написано правильно, флаг показывает все включая скрытые, а еще команда ls -a так же работает
в версии под мак вот такая справка для этих ключей:
-a Include directory entries whose names begin with a dot (‘.’). -f Output is not sorted. This option turns on -a. It also negates the effect of the -r, -S and -t options. As allowed by IEEE Std 1003.1-2008 (“POSIX.1”), this option has no effect on the -d, -l, -R and -s options.
тоись
-а выводит вам скрытые директории(и файлы) те что начинаются с точки. При этом будет произведена сортировка
-f выводит то же что и -a но без любой сортировки (инфа 21%)
ZdraviiSmisl commented Jun 21, 2023 •
Может, стоило указаать , что нужно указывать абсолютный путь для дериктории в которую перещаете файлы? Для комманды перемещения всех файлов из одной папки в другую
mv: cannot stat ’01-starting-setup/.‘: No such file or directory
89610090091 commented Jun 21, 2023 via email
Добрый день! Скорее сообщение было адресовано не мне, хотя с git bash знаком сам. Может сообщение было важным, отправьте в нужный адрес. ср, 21 июн. 2023 г., 17:29 Evgeniy Arapov ***@***.***>:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Footer
© 2024 GitHub, Inc.
You can’t perform that action at this time.
Сменить директорию в git bash
Я хочу в git bash написать команду cd. Я на рабочем столе создал папку 4. В ней есть папка work. Внутри папки work файл 1.html. Я пишу в git bash $ cd 4 / work. Он выдает bash: cd: too many arguments. Подскажите, пожалуйста, как правильно вводить эту команду в git bash.
Отслеживать
26.2k 7 7 золотых знаков 31 31 серебряный знак 48 48 бронзовых знаков
задан 15 окт 2021 в 12:30
user465242 user465242
19 1 1 серебряный знак 2 2 бронзовых знака
Наверное, как обычно в большинстве командных оболочек: cd 4/work
15 окт 2021 в 12:37
cd ~/desctop/4/work попробуйте так
– user341547
15 окт 2021 в 12:41
с английского переводиться как слишком много аргументов. чтобы путь задать как один аргумент можно заключить в кавычки, но вы должны понять, что система пробелы воспримет как имя директории с пробелом и имя файла так-же с пробелом. решением будет просто убрать эти пробелы и для надёжности закрепить в кавычках. cd «4/work»
22 мая 2022 в 7:44
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Операционная система то какая?
Первое, что Вас должно насторожить, когда возникает такая проблема — это то, что Вы создаёте папку на рабочем столе.
Давайте попробуем разобраться.
Я буду исходить из того, что у Вас установлен линукс.
Когда у Вас открывается баш, то слева, до курсора, написан путь в файловой системе. Это — то место, где Вы находитесь сейчас. Что то вроде /home/kirill/ Если Вы сомневаетесь, то есть команда pwd , которая выводит этот путь.
Когда Вы создаёте папку на рабочем столе — то это не то же самое, что создать папку в текущей директории баша.
Попробуйте её найти, навскидку — это будет что то вроде /home/kirill/Desktop/
когда найдёте и перейдёте в ту директорию, где есть папка 4 — тогда самое время писать cd 4/work/ , и не забудьте, что между 4 , слешем и work не должно быть пробелов.
Скорее всего, именно они и вызвали сообщение «too many arguments»
Работа с файлами и каталогами в командной оболочке Bash

Bash (Bourne Again Shell) — это командная оболочка, использующаяся в таких UNIX-системах, как Linux или MacOS. Она позволяет управлять компонентами ОС с помощью определённых запросов, которые вводятся в консоль или берутся из скрипта.
Как новичкам, так и опытным пользователям будет полезно узнать или вспомнить основные команды Bash для управления такими важными аспектами системы, как файлы и каталоги. Этот вопрос будет разобран на примере ОС Linux.
Работа с файлами и каталогами
Работа с файлами и каталогами в Linux через Bash осуществляется с учетом иерархического принципа их классификации. Иерархическая структура файловой системы Linux напоминает «дерево». Существует корневой каталог, который является начальным для всей ОС, а в нём, соответственно, масса других подкаталогов.
Такой же принцип используется для командной строки. Файлы и каталоги берут начало из корневого узла « / », который является начальной точкой для всех элементов.
Ниже представлен стандартный перечень подкаталогов, встречающийся в большинстве UNIX-систем.
| Каталог | Содержимое |
| /bin | Бинарные версии файлов (в том числе для командной оболочки). |
| /dev | Псевдофайлы, представляющие собой аппаратные средства, подключённые к устройству. |
| /etc | Большая часть конфигурационных файлов. |
| /lib | Библиотеки для системных приложений. |
| /opt | Необязательные компоненты системы или приложения. |
| /tmp | Временные файлы. |
| /usr | Пользовательские компоненты. |
| /var | Файлы приложений (в том числе системные журналы, кэши и т. д.). |
Команды для каталогов
Существуют конкретные команды, предназначенные для работы с каталогами. Далее будут приведены самые важные из них.
Список основных команд
- pwd — вывод полного пути к текущему каталогу.
- cd — переход с текущего каталога на домашний пользовательский.
- cd dirname — перейти в папку «dirname».
- cd / — переход по директориям относительно корневого каталога.
- ls — просмотреть список файлов в каталоге.
- ls -d */ — просмотреть список папок в текущем каталоге.
- ls dirname — вывод содержимого каталога «dirname» на экран.
- mkdir dirname — создать папку с наименованием «dirname».
- rmdir dirname — удалить папку «dirname».
- rm -rf dirname — удалить папку «dirname» с её содержимым (опция -r) без предупреждения пользователя (опция -f).
- du -h dirname — размер папки «dirname».
Помимо этого, существуют полезные сокращения. Например, текущая директория обозначается с помощью « . ». Знак « .. » позволяет задействовать родительский каталог. Для представления домашней директории используется « ~ ».
Пример использования сокращений:
root@test:~/dirname/files# cd .. # переход в родительский (предыдущий) каталог root@test:~# du -h . # вывод данных о размере текущего каталога и его элементов 4,0K ./files 8,0K . root@test:~/dirname# cd ~ # переход в домашний каталог root@test:~#
Команды для файлов
Далее приведены основные команды для осуществления взаимодействия с файлами. Начинающим полезно опробовать каждую из них, чтобы лучше понять принцип работы утилит.
Список основных команд
- touchfile — создать файл.
- realpath file — узнать абсолютный путь к файлу.
- stat file1 — получение информации о «file1» (размер файла, дата создания файла и т. д.) и проверка существования файла.
- cat > file — запись в файл.
- catfile — чтение файла.
- echo текст >> file — дописать в файл текст.
- find file — поиск файла.
- mcedit file — редактирование файла (также можно использовать редакторы Nano, Vim и другие).
- cat file1 file2 > file12 — объединение файлов.
- sh filename — запустить файл со сценарием Bash.
- ./filename — запустить исполняемый файл.
- cp file1 file2 — копировать файл «file1» с переименованием на «file2». Произойдёт замена файлов, если элемент с таким же названием существует.
- mv file1 file2 — переименовать файл «file1» в «file2».
- mv filename dirname — переместить файл «filename» в каталог «dirname».
- less filename — открыть файл в окне терминала.
- file filename — определение типа файла.
- head filename — вывод нескольких начальных строк из файла на экран (построчное чтение файла). По умолчанию строк 10.
- tail filename — вывод нескольких конечных строк из файла на экран.
- diff file1 file2 — сравнение файлов.
- grep text filename — поиск и вывод строк из файла, содержащих «text».
- rm filename — удалить файл.
Подробную информацию об утилитах можно получить, воспользовавшись справочной службой: « man ».
Пример получения справки по работе с программой rm: « man rm ».
Перенаправление данных
Перенаправление ввода-вывода в файл осуществляется с помощью специальных знаков. Для вывода используются « > » и « >> », а для ввода — « < ».
Пример вывода « ls » в файл, а не на экран:
root@test:~# ls > files.txt root@test:~# cat files.txt file1.cpp sample.txt
Новый файл создаётся автоматически. В случае существования элемента с таким же наименованием, произойдёт перезапись. Чтобы этого избежать, необходимо использовать « >> ». Тогда данные будут дописываться в документ.
Пример ввода, при котором информация выносится из файла с помощью команды « sort »:
root@test:~# echo text > file.txt root@test:~# sort < file.txt text
Генерация имён файлов в Bash
Иногда пользователю приходится работать с несколькими файлами одновременно, например, при выполнении переноса документов в другой каталог. Это станет проблемой, если элементов десятки или сотни и среди них нужно отобрать определённые.
Для решения поставленной задачи можно попробовать использование шаблонного выражения, позволяющего Bash определить необходимые элементы, ориентируясь по наименованию. Этот способ упрощает управление группой файлов путём применения короткой формулировки в команде.
Итак, теперь остаётся разобраться с вопросом составления шаблонов. Сейчас будут приведены основные конструкции для осуществления генерации имён. Чаще всего для отбора файлов применяется символ: « * ». В случае использования этого знака в чистом виде, Bash выберет все элементы в каталоге без исключений.
root@test:~# ls * document1.docx document2.docx document3.txt file1.txt file2.docx file3.txt
Для примера, чтобы из этого каталога отобрать файлы: file1, file2, file3, следует воспользоваться шаблоном:
root@test:~# ls file* file1.txt file2.docx file3.txt
Символ звёздочки позволяет командному интерпретатору выделить все файлы, начинающиеся с «file». При этом последующая часть наименования будет проигнорирована.
Знак « * » можно использовать также в начале или с обеих сторон шаблона.
Кроме того, сгенерировать имена можно, взяв за основу расширение файла. Например:
root@test:~# ls .txt* document3.txt file1.txt file3.txt
Надежный хостинг для сайта. 14 дней - бесплатно!