Содержание статьи:
Доброго дня!
Вообще, если у вас современный дистрибутив Linux (рекоменд. для начинающих) — то операция копирования там выполняется парой кликов мышки (не сложнее чем в Windows). Однако, в ряде случаев приходится прибегать к терминалу... (например, граф. оболочка может быть недоступна, сбоить, или вы подключились к серверу через консоль...).
Собственно, именно работу с терминалом с текстовыми командами (по копированию) сегодня и рассмотрим ниже: приведу неск. сподручных команд и реальные примеры. Вам будет достаточно посмотреть пример и ввести к себе в терминал аналогичную команду (слегка подправив ее под себя).
*
Примечание: материал и примеры ниже актуальны для дистрибутивов Linux, основанных на Debian (Ubuntu).
*
Примеры копирования (в т.ч. загрузки) файлов в Linux
Вариант 1
Какой бы не был у вас дистрибутив Linux - в рамках этой заметки не могу не порекомендовать внимательно осмотреть все установленные приложения (как правило в них всегда есть что-то вроде "Файлы", "Files", "Проводник" и т.п.). Если такое приложение есть - хорошо бы его запустить (задача по копированию может сильно облегчиться...).
Как правило "проводник" в большинстве дистрибутивов Linux выглядит также как в Windows, и копирование в нем тоже аналогичное: достаточно мышкой выделить нужные файлы, нажать по ним правой кнопкой мыши и выбрать действие "Копирование". См. скрин ниже.
Далее останется открыть новую папку (каталог), сделать в любом свободном месте ПКМ и выбрать опцию "Вставить". Всё, сразу после этого файлы будут скопированы...
*
Вариант 2 (через терминал)
Простое копирование (команда CP)
Я буду исходить из того, что вы практически впервые оказываетесь в терминале Linux и не до конца понимаете "что и откуда"...
Итак, по порядку:
- сначала нужно запустить сам 📌терминал (Win+T) // на всякий случай, если у кого он еще не открыт. Прим.: терминал - это такое "черное" окно, в котором нужно вводить текстовые команды, см. пример ниже;
- далее разумнее всего (начинающим) узнать в каком каталоге сейчас находимся. Для этого есть команда PWD (после ее ввода нужно нажать Enter). В моем примере каталог: /home/alex (примечание: обычно все файлы пользователей располагаются в каталоге /home).
- чтобы узнать какие файлы и папки есть в этом каталоге (это тоже будет нужно в последствии) - есть команда ls -l (см. пример ниже);
- теперь при помощи команды CD нужно открыть ту папку, в которой у вас находятся файлы для копирования (например, CD Изображения). В моем примере я хочу скопировать скриншоты формата PNG (и я открыл папку, в которой они лежат);
- для копирования файлов есть спец. команда CP. Например, для копирования всех файлов формата PNG - команду можно оформить так: cp *.png /home/alex/Документы (*.png - показывает, что должны быть скопированы файлы PNG формата. Вместо "*" можно указать конкретное имя. /home/alex/Документы - это папка, куда будут скопированы файлы PNG);
- теперь попробуем проверить, что у нас скопировалось: для этого сначала откроем каталог cd /home/alex/Документы (а затем посмотрим, что в нем лежит: ls -l). Как видно на скриншоте ниже: все файлы PNG были скопированы из каталога "Изображения" в "Документы";
Рекурсивное (со всеми файлами и каталогами)
Если вам нужно скопировать полностью папку со всеми файлами и подпапками в ней - то эта операция выполняется аналогично вышесказанному, только в команду нужно добавить ключ "-r".
Пример:
cp -r papka1 papka2
или
cp -r /home/alex/Документы /home/alex/Загрузки
См. пример ниже (после копирования - с помощью CD и ls -l было проверено, что файлы и папки были скопированы полностью).
*
Копирование на флешку
Совет №1. Лучше и легче всего воспользоваться встроенным проводником Linux (есть в большинстве дистрибутивов). Называется он обычно "Файлы".
*
С этими съемными накопителями всё не всегда просто, особенно при работе через терминал (флешка и внешние диски разные, на них может быть везде своя файловая система, разметка и прочие особенности). Я рассмотрю общий случай для обычной отформатированной флешки (наиболее распространенный):
- запускаем терминал;
- далее смотрим список дисков - команда: lsblk (см. стрелку-1 на скрине ниже);
- создаем точку монтирования - команда: sudo mkdir /media/alex1 (вместо alex1 можете задать что-то свое);
- монтируем флешку: sudo mount /dev/sdb1 /media/alex1 (обратите внимание, что вместо sdb1 - вам нужно подставить свой идентификатор, который показала команда lsblk; вместо alex1 - свою заданную точку монтирования);
- теперь можно открыть флешку (команда: cd /media/alex1) и посмотреть ее содержимое (ls -l);
- теперь осталось только скопировать на флешку нужную папку, например, так: cp -r /home/alex/Документы /media/alex1 (согласно монтированию, см. выше).
*
Пару слов о rsync
rsync - это ПО позволяет проводить синхронизацию файлов и папок как на локальном ПК, так и с локального на удаленный (и наоборот). Ее основным преимуществом явл. возможность продолжения копирования (в случае ошибок, сбоев, прерываний). По использованию очень похожа на команду CP (рассмотренную выше).
Пример (как выглядит команда):
rsync [опции] <источник> <назначение>
или
rsync test.txt /home/alexuser/ - эта команда произведет копирование файла test.txt в каталог /home/alexuser
Чтобы установить rsync воспользуйтесь командной:
apt install rsync
*
Загрузка файла из сети (wget)
Если вам нужно через терминал скопировать какой-то файл из сети/с сайта (т.е. скачать его) - для этого есть спец. команда wget (примечание: это утилита командной строки в Linux для загрузки файлов из Интернета).
Как ей пользоваться:
- открыть терминал и зайти в нужную папку (чуть выше я показал как это делается с помощью команды CD);
- ввести команду вида: wget https://ocomp.info/arc.tar.gz и нажать Enter. Мой URL замените на свой! (должна начаться загрузка файла из сети в текущую директорию);
- чтобы извлечь архив - используйте команду вида: tar -xvzf arc.tar.gz (где arc.tar.gz - имя архива).
Дополнение! Если появится ошибка насчет wget - скорее всего эта утилита у вас не установлена. Попробуйте ввести:
sudo apt install wget
А затем повторить вышесказанное...
*
📌 По поводу ошибок (отказано в доступе, нет такой папки и т.п.)
При копировании файлов иногда могут возникать ошибки. Некоторые типовые я решил кратко выделить ниже:
- если возникает ошибка с доступом - попробуйте воспользоваться командой sudo su (а затем повторить свою команду. Прим.: sudo su - этой командой мы войдем под администратором и все наши команды далее будут выполняться с наивысшими правами);
- внимательно относитесь к названиям папок, например: "Изображения" и "изображения" - это 2 разных папки (регистр букв важен!).
- обращайте также внимание на владельца папок и файлов (после ls -l). Иногда могут быть ошибки, связанные с тем, что владелец этих файлов не вы (и тогда нужно предварительно поменять его, например, так: sudo chown -R alex:alex /home/alex/sites/ocomp.info, вместо alex:alex - укажите свое имя учетной записи/пользователя).
Несколько доп. типовых команд в Linux также было разобрано в одной моей прошлой заметке - ссылка на нее ниже, рекомендую.
https://ocomp.info/komandyi-linux.html#x1f4cc
*
Дополнения по теме — приветствуются в комментариях к заметке (можно оставить через форму ниже).
Успехов!