Операции с файлами в командной строке Linux. Урок

Методическая разработка урока по информатике
Цикл уроков по информатике: Работа в режиме командной строки Linux
Уровень: Linux для начинающих

Работая в любой графической оболочке (например, KDE или Gnome) мы часто выполняем такие операции как копирование, перемещение, переименование объектов (файлов и папок), также создаем файлы и каталоги. Все это изменяет файловую структуру (по крайней мере, ее "пользовательскую" часть). Очевидно что подобные операции (копирование, перемещение и др.) должны быть предусмотрены и в командной оболочке Linux.

копирование

Для копирования файлов в bash используется команда cp (от "copy"– копировать), которая имеет два обязательных аргумента: имя (адрес) исходного файла и имя (адрес) создаваемой копии или адрес каталога, куда помещается копия.

копирование в командной стоке Linux

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

Рассмотрим несколько примеров.

cp readme readme2

В данном случае создается копия файла readme, которая остается в той же директории под именем readme2.

cp readme Desktop/

Создается копия на рабочем столе. Непосредственное имя копии в данном случае можно оставить прежним, т.к. полные имена (адрес + имя) файлов различны. Используется относительная адресация (каталог Desktop является дочерним по отношению к домашнему каталогу).

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

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

Чтобы скопировать каталог необходимо после команды cp прописать ключ r:

cp -r ./letters ./oldletters

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

Для перемещения и переименования в bash-оболочки Linux используется одна команда – mv (от "move" – перемещать). Также как и с командой копирования обязательно наличие двух аргументов, а выбор того или иного действия (перемещения или переименования) зависит от того, что это за аргументы. При перемещении файл меняет свой адрес, следовательно, если в первом и втором аргументах указаны различные адреса, то произойдет перемещение, если одинаковые (а различны только имена) – переименование.

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

mv document.txt Work

mv document.txt Work/doc23.txt

Здесь в первом случае файл document.txt перемещается в каталог Work, а во-втором случае одновременно происходит перемещение файла и его переименование: файл document.txt перемещается в директорию Work и получает новое имя doc23.txt.

При использовании команды mv для переименования в качестве второго аргумента указывается новое имя:

mv order.txt orderNew.txt

mv Work/list.odt Work/names.odt

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

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

mkdir Work

или

mkdir ./Work

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

cal > ./Work/January

Здесь команда cal выводит календарь на текущий месяц, а поскольку стоит знак ">" (в данном случае обозначающий "направить результат выполнения команды в ..."), то вывод команды будет записан в файл January, находящийся в папке Work.

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

Для удаления каталогов используется команда rmdir. Удалять можно только пустые каталоги, т. е. не содержащие файлов и поддиректорий (вложенных папок).

Для удаления файлов используется команда rm. Например:

rm ghost.png

Чтобы удалить не пустой каталог можно использовать команду rm с ключом -r. При этом при удаление каждого вложенного объекта будет требоваться подтверждения.

удаление не пустого каталога в командной строке Linux

Однако если добавить еще ключ -f, то вопросов на подтвержение уже возникать не будет:

rm -rf /mnt/save/alldocuments/

вопросы

  1. Для чего предназначены команды cp, mv, rm, mkdir, rmdir?
  2. Как скопировать каталог?
  3. Можно ли удалить не пустой каталог?
  4. В каком из приведенных ниже примерах происходит перемещение файла? его переименование? одновременно оба действия?
    а) mv ./work/tech/comp.png ./work/tech/my_car.png
  5. б) mv ./work/tech/comp.png ./Desktop

    в) mv ./work/tech/comp.png ./work/tech/computer.png

практическая работа

  1. В домашней директории создайте каталог folder и переместитесь в него.
  2. Создайте в нем три файла любыми известными вам способами, а также вложенный каталог inside.
  3. Скопируйте один файл из каталога folder в каталог inside, а два оставшихся — переместите в inside. Файл, оставшийся в каталоге folder, переименуйте.
  4. Создайте копию каталога inside на рабочем столе (Desktop).
  5. Удалите каталог folder.