Перемещение копирование и удаление файлов

В этой статье по администрированию Linux серверов мы рассмотрим перемещение (mv), копирование (cp) и удаление (rm) файлов.

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

Создадим 1 файл, и 2 каталога. Для создания файла используем уже знакомую команду touch, для создания каталога нужно использовать команду mkdir:

$ mkdir dir1
$ mkdir dir2
$ touch file1.txt

$ ls -l
итого 8
drwxr-xr-x 2 alex alex 4096 дек 21 12:55 dir1
drwxr-xr-x 2 alex alex 4096 дек 21 12:55 dir2
-rw-r--r-- 1 alex alex    0 дек 21 12:55 file1.txt

Если нужно сделать некий путь из каталогов, то есть создать каталог, в нем еще один каталог и так далее, то для команды mkdir нужно использовать опцию -p, например:

$ mkdir dir3/dir2/dir1
mkdir: невозможно создать каталог «dir3/dir2/dir1»: Нет такого файла или каталога

$ mkdir -p dir3/dir2/dir1

$ ls dir3/
dir2

$ ls dir3/dir2/
dir1

Перемещение файлов и каталогов

Первым делом научимся перемещать файлы, для этого служит утилита mv. Переместим file1.txt в каталог dir1:

$ mv file1.txt dir1

$ ls
dir1  dir2  dir3

$ ls dir1
file1.txt

Теперь переместим каталог dir1 в каталог dir2 и обратно:

$ mv dir1 dir2

$ ls dir2
dir1

$ mv dir2/dir1 .

$ ls
dir1  dir2  dir3

Предпоследней командой я перемещаю из dir2 каталог dir1 в текущий каталог (напоминаю что точкой обозначается текущий каталог, об этом было рассказано в этой статье — Перемещение по каталогам Linux ).

Таким образом перемещение файла или каталога командой mv не отличается.

Кроме перемещения команда mv может переименовать файл, для этого нужно как-бы переместить файл из каталога в этот же каталог но под другим именем:

$ mv dir1/file1.txt dir1/file2.txt

alex@deb:~$ ls dir1
file2.txt

Или можно переместить файл в другой каталог одновременно переименовав его:

$ mv dir1/file2.txt dir2/file3.txt

$ ls dir1 dir2
dir1:

dir2:
file3.txt

В команде выше я с помощью ls смотрю сразу на 2 каталога. Как видите, каталог dir1 опустел, а в dir2 появился файл file3.txt.

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

Теперь разберем копирование файлов, но для начала сделаем еще несколько файлов в каталоге dir2:

$ touch dir2/file2.txt
$ touch dir2/file1.txt

$ ls dir2
file1.txt  file2.txt  file3.txt

Для копирования используется утилита cp. Скопируем из каталога dir2 файл file1.txt в каталог dir1:

$ cp dir2/file1.txt dir1

$ ls dir1
file1.txt

$ ls dir2
file1.txt  file2.txt  file3.txt

Можно копировать с переименованием, указав новое имя:

$ cp dir2/file1.txt dir1/file1-copy.txt

$ ls dir1 dir2
dir1:
file1-copy.txt  file1.txt

dir2:
file1.txt  file2.txt  file3.txt

При копировании каталога нужно использовать опцию -r, если попытаться скопировать каталог без этой опции то появится подсказка:

$ cp dir1 dir2
cp: не указан -r; пропускается каталог 'dir1'

$ cp -r dir1 dir2

alex@deb:~$ ls dir1 dir2/dir1/
dir1:
file1-copy.txt  file1.txt

dir2/dir1/:
file1-copy.txt  file1.txt

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

Теперь настала очередь удаления. Для удаления нужно использовать команду rm:

$ rm dir1/file1-copy.txt

$ ls dir1
file1.txt

Для удаления каталога нужно использовать также опцию -r:

$ rm dir2
rm: невозможно удалить 'dir2': Это каталог

$ rm -r dir2

$ ls
dir1  dir3

$ rm -r dir1
$ rm -r dir3
$ ls

Если понравилась статья, подпишись на мой канал в  VK  или  Telegram .