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

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















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




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




alex@deb:~$ mkdir dir1
alex@deb:~$ mkdir dir2
alex@deb:~$ touch file1.txt
alex@deb:~$ 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, например:




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

alex@deb:~$ mkdir -p dir3/dir2/dir1

alex@deb:~$ ls dir3/
dir2

alex@deb:~$ ls dir3/dir2/
dir1




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




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




alex@deb:~$ mv file1.txt dir1
alex@deb:~$ ls
dir1  dir2  dir3
alex@deb:~$ ls dir1
file1.txt




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




alex@deb:~$ mv dir1 dir2
alex@deb:~$ ls dir2
dir1
alex@deb:~$ mv dir2/dir1 .
alex@deb:~$ ls
dir1  dir2  dir3




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




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




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




alex@deb:~$ mv dir1/file1.txt dir1/file2.txt
alex@deb:~$ ls dir1
file2.txt




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




alex@deb:~$ mv dir1/file2.txt dir2/file3.txt

alex@deb:~$ ls dir1 dir2
dir1:

dir2:
file3.txt




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




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




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




alex@deb:~$ touch dir2/file2.txt
alex@deb:~$ touch dir2/file1.txt
alex@deb:~$ ls dir2
file1.txt  file2.txt  file3.txt




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




alex@deb:~$ cp dir2/file1.txt dir1
alex@deb:~$ ls dir1
file1.txt
alex@deb:~$ ls dir2
file1.txt  file2.txt  file3.txt




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




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

dir2:
file1.txt  file2.txt  file3.txt




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




alex@deb:~$ cp dir1 dir2
cp: не указан -r; пропускается каталог 'dir1'
alex@deb:~$ cp -r dir1 dir2
alex@deb:~$ ls dir1 dir2/dir1/
dir1:
file1-copy.txt  file1.txt

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




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




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




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




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




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

alex@deb:~$ rm -r dir2
alex@deb:~$ ls
dir1  dir3
alex@deb:~$ rm -r dir1
alex@deb:~$ rm -r dir3
alex@deb:~$ ls









Вот мы и разобрали тему «Перемещение, копирование и удаление файлов»! Спасибо за внимание.










2021-12-21T14:49:46
Администрирование Linux