В работе с файлами нередко выполняются операции по созданию и управлению файлами и папками, таким как их копирование, перемещение, переименование и удаление. Для этих целей в операционной системе Linux существуют специальные команды.

Копирование файлов и каталогов

Команда cp (аббревиатура от "copy") используется в Bash для копирования файлов. Обычно она принимает два аргумента:

  1. путь и имя исходного файла,
  2. новый путь и имя, либо просто путь каталога, куда будет помещена копия.

Копирование и перемещение в Bash

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

Рассмотрим примеры.

cp readme readme2

Здесь создается копия файла readme, которая сохраняется в том же каталоге под именем readme2.

cp readme Desktop/

Файл readme копируется в папку Desktop. В данном примере родительский каталог Desktop является текущим, поэтому имена копии и оригинала совпадают, хотя их полные пути различны.

cp /home/irina/tux.png /mnt/D/pingvin.png

Здесь происходит копирование файла из одной директории в другую с использованием абсолютных путей и изменением имени копии.

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

Чтобы скопировать директорию вместе с ее содержимым, добавляется ключ -r к команде cp:

cp -r ./letters ./oldletters

Перемещение и переименование

В командной оболочке Bash для перемещения и переименования файлов используется команда mv (от "move"). Переименование является специальным видом перемещения, так как при этом изменяется полный адрес файла, даже если он остается в том же каталоге.

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

При перемещении без изменения имени вторым аргументом выступает адрес целевого каталога.

mv document.txt Work

mv document.txt Work/doc23.txt

Таким образом, в первом примере файл document.txt перемещается в каталог Work, а во втором случае совершено перемещение с переименованием: файл оказывается в каталогe Work под новым именем doc23.txt.

Для изменения имени с помощью mv в качестве второго аргумента указывается новое имя файла:

mv order.txt orderNew.txt

mv Work/list.odt Work/names.odt

Каталоги изменяют свое местоположение и имена по аналогии с файлами. Групповое перемещение также аналогично работе команды cp.

Создание файлов и каталогов

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

mkdir Work
или
mkdir ./Work

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

cal > ./Work/January

Программа cal генерирует календарь текущего месяца. Поскольку используется перенаправление, результат будет записан в файл January, расположенный в Work.

Удаление файлов и каталогов

Для удаления файлов предназначена команда rm, например:

rm ghost.png

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

Удаление непустого каталога: rm -r

Вопросы для самопроверки:

  1. Какой командой в Bash можно копировать директорию вместе с ее содержимым?
  2. Какое отличие между переименованием и перемещением файлов в Bash?
  3. Как создать новый пустой файл в Linux?
  4. Какая команда используется в Linux для создания нового каталога?
  5. Какая команда применяется для удаления файлов в Linux?

Программа курса:

  1. Описание курса
  2. История операционной системы Linux
  3. Основы лицензии GNU GPL и её преимущества
  4. Функции и структура ядра Linux-систем
  5. Структура и каталоги файловой системы Linux
  6. Основные типы файлов в системе Linux
  7. Интерфейс командной строки в Linux
  8. Командная оболочка Bash в Linux
  9. Использование параметров команд в Bash
  10. Использование Ctrl+C, Ctrl+D и Ctrl+Z
  11. Автодополнение и история команд в Bash
  12. Перенаправление ввода и вывода в Bash
  13. Документация Linux и Man-страницы
  14. Абсолютная и относительная адресация в Linux
  15. Команда ls - как просматривать каталоги в Linux
  16. Копирование, перемещение и удаление в Linux
  17. Жесткие и символьные ссылки в Linux
  18. Создание жестких и символических ссылок в Linux
  19. Права доступа к файлам и каталогам в Linux
  20. Изменение прав доступа к файлам с помощью chmod
  21. Использование шаблонов имен файлов в Linux
  22. Поиск файлов в Linux с помощью команды find
  23. Использование команды sudo в Linux
  24. Управление пакетами с помощью APT в Linux