Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Документация openSUSE
  3. Start-Up
  4. Часть II. Основы
  5. Глава 8. Основы оболочки

8.3. Работа с файлами и каталогами

8.3. Работа с файлами и каталогами

Для обращения к определенному файлу или каталогу вам нужно указать путь, ведущий к этому каталогу или файлу. Как вы, наверно, уже знаете из MS DOS или Mac OS, существуют два способа указания пути:

Абсолютный путь

Введите полный путь от корневого каталога к соответствующему файлу или каталогу.

Относительный путь

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

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

При вводе команд вы можете выбрать любой из двух способов указания пути—в зависимости от ваших предпочтений и количества печати—оба приведут в одному результату. Для смены каталога используйте команду cd и укажите путь к каталогу.

[Note]Обращение с пробелами в именах файлов и каталогов

Если имя файла или каталога содержит пробел, либо заблокируйте пробел, используя обратный слеш (\) впереди пробела, либо заключите имя файла в одинарные кавычки. В противном случае Bash интерпретирует имя файла типа My Documents как имена двух файлов или каталогов, My и Documents в данном случае.

При указании путей следующие «сокращения» могут значительно сократить объем печати:

  • Символ тильды (~) является сокращением для домашних каталогов. Например, для получения списка содержимого вашего домашнего каталога используйте ls ~. Для получения списка содержимого домашнего каталога другого пользователя введите ls ~имя_пользователя (конечно, это будет сработает только если у вас есть права просмотра содержимого, смотрите Раздел 7.3, «Права доступа файлов»). Например, ввод ls ~tux выдаст список содержимого домашнего каталога пользователя под именем tux. Вы можете использовать символ тильды как сокращение для домашних каталогов и тогда, когда вы работаете в сетевом окружении и где ваш домашний каталог может не назваться /home, но может соответствовать любому каталогу в файловой системе.

    Из любого места файловой системы вы можете достичь вашего домашнего каталога введя cd ~ или даже короче, просто введя cd без каких-либо параметров.

  • При использовании относительных путей обращайтесь к текущему каталогу при помощи точки (.). Это в основном полезно для таких команд, как cp или mv, которыми вы можете копировать или перемещать файлы или каталоги.

  • Следующий верхний уровень в дереве представлен двумя точками (..). Для того, чтобы перейти в родительский каталог вашего текущего каталога, введите cd .., для того, чтобы перейти двумя уровнями выше текущего каталога введите cd ../.. и т.д.

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

8.3.1. Примеры работы с файлами и каталогами

Предположим, вы хотите скопировать файл, расположенные где-то в вашем домашнем каталоге, в подкаталог /tmp.

  1. Сначала создайте подкаталог /tmp в вашем домашнем каталоге:

    1. Введите

      mkdir /tmp/test

      mkdir означает «создать каталог». Это команда создает новый каталог под названием test в каталоге /tmp. В этом случае вы используете абсолютный путь для создания каталога test.

    2. Для проверки того, что произошло, введите теперь

      ls -l /tmp

      Новый каталог test должен появиться в содержании каталога /tmp.

    3. Перейдите в новый каталог при помощи

      cd /tmp/test
  2. Теперь создайте новый файл в подкаталоге вашего домашнего каталога и скопируйте его в /tmp/test. Используйте относительный путь для этой задачи.

    [Important]Перезапись существующих файлов

    Перед копированием, перемещением или переименованием файла, проверьте не содержит ли уже целевой каталог файл с таким же именем. Если так, то подумайте над изменением имени одного из файлов или используйте cp или mv с параметрами типа -i, которые спросят перед тем, как перезаписать существующий файл. В противном случае Bash перезапишет существующий файл без запроса.

    1. Для получения списка содержимого вашего домашнего каталога введите

      ls -l ~

      По умолчанию, он должен содержать подкаталог под именем Documents. Если его нет, создайте этот подкаталог при помощи команды mkdir, которую вы уже знаете:

      mkdir ~/Documents
    2. Введите

      touch ~/Documents/myfile.txt

      Эта команда создаст новый пустой файл под именем myfile.txt в каталоге Documents.

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

    3. Введите

      ls -l ~/Documents

      Новый файл должен появиться в содержании.

    4. Введите

      cp ~/Documents/myfile.txt .

      Не забудьте точку в конце.

      Это команда говорит Bash пойти в ваш домашний каталог и скопировать myfile.txt из подкаталога Documents в текущий каталог, /tmp/test, без изменения имени файла.

    5. Проверьте результат, введя

      ls -l

      Файл myfile.txt должен появиться в содержании для /tmp/test.

Теперь предположим, вы хотите переименовать myfile.txt в tuxfile.txt. Окончательно, вы решили удалить переименованный файл и подкаталог test.

  1. Для переименования файла введите

    mv myfile.txt tuxfile.txt
  2. Для проверки того, что произошло, введите

    ls -l

    Вместо myfile.txt в содержании должен появиться tuxfile.txt.

    mv означает переместить и используется с двумя параметрами: первый параметр указывает источник, второй параметр указывает цель операции. Вы можете использовать mv

    • либо для переименования файла или каталога,

    • либо для перемещения файла или каталога в новое положение,

    • либо для обоих действий сразу.

  3. Придя к заключению, что вам больше не нужен файл, вы можете удалить его, введя

    rm tuxfile.txt 

    Bash удалит файл без запроса.

  4. Перейдите на уровень выше при помощи cd .. и проверьте при помощи

    ls -l test

    , пуст ли теперь каталог test.

  5. Если так, удалите каталог test, введя

    rmdir test

Перекрёстные ссылки книги для 8.3. Работа с файлами и каталогами

  • 8.2. Ввод команд
  • Вверх
  • 8.4. Становление root

Book navigation

  • Start-Up
    • Об этом руководстве
    • Часть I. Установка и настройка
    • Часть II. Основы
      • Глава 7. Основные концепции
      • Глава 8. Основы оболочки
        • 8.2. Ввод команд
        • 8.3. Работа с файлами и каталогами
        • 8.4. Становление root
        • 8.5. Изменение прав доступа к файлу
        • 8.6. Полезные особенности оболочки
        • 8.7. Редактирование текстов
        • 8.8. Поиск файлов или содержимого
        • 8.9. Просмотр текстовых файлов
        • 8.10. Перенаправление и каналы
        • 8.11. Управление процессами
    • Часть III. Мобильность
    • Часть IV. Помощь и разрешение проблем
    • Приложение A. Лицензии GNU
  • KDE Quick Start
  • GNOME Quick Start

Последние материалы

  • Приложение scanimage
    22 hours 26 minutes ago
  • Утилита sensors
    4 days 22 hours ago
  • Сканер Rkhunter
    1 week 5 days ago
  • Программа resize2fs
    2 weeks 3 days ago
  • Аудиопроигрыватель QMMP
    3 weeks 2 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru