В работе с файлами нередко выполняются операции по созданию и управлению файлами и папками, таким как их копирование, перемещение, переименование и удаление. Для этих целей в операционной системе Linux существуют специальные команды.
Копирование файлов и каталогов
Команда cp (аббревиатура от "copy") используется в 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: