Для обращения к определенному файлу или каталогу вам нужно указать путь, ведущий к этому каталогу или файлу. Как вы, наверно, уже знаете из MS DOS или Mac OS, существуют два способа указания пути:
Введите полный путь от корневого каталога к соответствующему файлу или каталогу.
Введите путь к соответствующему файлу или каталогу, используя текущий каталог как точку отправления. Подразумевается, что нужно указать уровни, по которым вы должны перемещаться вверх и вниз в дереве файловой системы для достижения целевого каталога файла, начиная с текущего каталога.
Пути содержат имена файлов, каталогов или обоих, разделенные символами наклонной черты (слешами). Абсолютный путь всегда начинается со слеша. Относительные пути не имеют слеша в начале, но могут иметь одну или две точки.
При вводе команд вы можете выбрать любой из двух способов указания пути—в зависимости от ваших предпочтений и количества печати—оба приведут в одному результату. Для смены каталога используйте команду cd и укажите путь к каталогу.
![]() | Обращение с пробелами в именах файлов и каталогов |
|---|---|
Если имя файла или каталога содержит пробел, либо заблокируйте пробел, используя
обратный слеш ( | |
При указании путей следующие «сокращения» могут значительно сократить объем печати:
Символ тильды (~) является сокращением для домашних
каталогов. Например, для получения списка содержимого вашего домашнего каталога
используйте ls ~. Для получения списка содержимого домашнего
каталога другого пользователя введите ls ~ (конечно, это будет сработает только если у вас есть права
просмотра содержимого, смотрите Раздел 7.3, «Права доступа файлов»).
Например, ввод ls ~tux выдаст список содержимого домашнего каталога
пользователя под именем имя_пользователя
tux. Вы можете использовать
символ тильды как сокращение для домашних каталогов и тогда, когда вы работаете
в сетевом окружении и где ваш домашний каталог может не назваться
/home, но может соответствовать
любому каталогу в файловой системе.
Из любого места файловой системы вы можете достичь вашего доманего каталога
введя cd ~ или даже короче, просто
введя cd без каких-либо параметров.
При использовании относительных путей обращайтесь к текущему каталогу
при помощи точки (.). Это в основном полезно для таких команд, как
cp или mv, которыми вы можете копировать или
перемещать файлы или каталоги.
Следующий верхний уровень в дереве представлен двумя точками
(..). Для того, чтобы перейти в родительский каталог вашего текущего каталога,
введите cd .., для того, чтобы перейти двумя уровнями выше
текущего каталога введите cd ../.. и т.д.
Для применения ваших знаний поищите некоторые примеры ниже. Они касаются основных задач, которые вы, возможно, хотите выполнять с файлами или каталогами, используя Bash.
Предположим, вы хотите скопировать файл, расположенные где-то в вашем домашнем
каталоге, в подкаталог /tmp.
Сначала создайте подкаталог /tmp
в вашем домашнем каталоге:
Введите
mkdir /tmp/test
mkdir означает «создать каталог».
Это команда создает новый каталог под названием test в
каталоге /tmp. В этом случае вы используете
абсолютный путь для создания каталога test.
Для проверки того, что произошло, введите теперь
ls -l /tmp
Новый каталог test должен появиться
в содержании каталога /tmp.
Перейдите в новый каталог при помощи
cd /tmp/test
Теперь создайте новый файл в подкаталоге вашего доманего каталога и
скопируйте его в /tmp/test. Используйте относительный
путь для этой задачи.
![]() | Перезапись существующих файлов |
|---|---|
Перед копированием, перемещением или переименованием файла, проверьте
не содержит ли уже целевой каталог файл с таким же именем. Если так, то
подумайте над изменением имени одного из файлов или используйте cp или
mv с параметрами типа | |
Для получения списка содержимого вашего доманего каталога введите
ls -l ~
По умолчанию, он должен содержать подкаталог под именем Documents. Если его
нет, создайте этот подкаталог при помощи команды mkdir, которую вы уже знаете:
mkdir ~/Documents
Введите
touch ~/Documents/myfile.txt
Эта команда создаст новый пустой файл под именем myfile.txt в
каталоге Documents.
Обычно команда touch обновляет данные изменения и доступа для существующего файла. Если вы используете touch с именем файла, который не существует в целевом каталоге, она создаст новый файл.
Введите
ls -l ~/Documents
Новый файл должен появиться в содержании.
Введите
cp ~/Documents/myfile.txt .
Не забудьте точку в конце.
Это команда говорит Bash пойти в ваш домашний каталог и скопировать
myfile.txt из подкаталога Documents в текущий каталог,
/tmp/test, без изменения имени файла.
Проверьте результат, введя
ls -l
Файл myfile.txt должен появиться в содержании для /tmp/test.
Теперь предположим, вы хотите переименовать myfile.txt в
tuxfile.txt. Окончательно, вы решили удалить переименованный
файл и подкаталог test.
Для переименования файла введите
mv myfile.txt tuxfile.txt
Для проверки того, что произошло, введите
ls -l
Вместо myfile.txt в содержании должен появиться
tuxfile.txt.
mv означает переместить и используется
с двумя параметрами: первый параметр указывает источник, второй параметр указывает
цель операции. Вы можете использовать mv
либо для переименования файла или каталога,
либо для перемещения файла или каталога в новое положение,
либо для обоих действий сразу.
Придя к заключению, что вам больше не нужен файл, вы можете удалить его, введя
rm tuxfile.txt
Bash удалит файл без запроса.
Перейдите на уровень выше при помощи cd .. и проверьте при помощи
ls -l test
, пуст ли теперь каталог test.
Если так, удалите каталог test, введя
rmdir test