|
|||||||
CP_remote_local
Время создания: 06.12.2018 14:50
Автор: alensav
Текстовые метки: cp, copir, копир
Раздел: MyTetra - Ubuntu_Command
Запись: alensav/MyTetra2/main/base/1544097005ro4oo2ttji/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Команда для копирования папок из удаленного сервера на локальный: scp user@remote.host:file.txt /some/local/directory *scp -r orangepi@192.168.1.41:/home/Xeoma/XeomaArchive/Preview+Archive.18 /media/alensav/win/Arhiv_Camera # Копирование timeshift на Time_Capsule =============================================================== Копирование видео с orangepi на win. Корректировать по ip ------------------------------------------------- scp -r orangepi@192.168.0.11:/media/capsule/camera_orang/Preview+Archive.18 /media/alensav/win/Arhiv_Camera ------------------------------------------------- # Редактируем под capsule_time scp -r orangepi@192.168.0.11:/media/capsule/camera_orang/Preview+Archive.18/ /media/capsule/camera_orang/Preview+Archive.18/ uлавная Терминал Копирование файлов в Linux Копирование файлов в Linux Терминал Ноябрь 1, 2015 7 admin bash Копирование файлов - одна из задач, наиболее часто возникающих перед пользователями персонального компьютера. Конечно, можно открыть файловый менеджер, войти в нужную папку и скопировать файл с помощью контекстного меню - тут не о чем говорить. Но в этой статье я хотел бы рассмотреть копирование файлов в Linux с помощью терминала. Не всегда есть доступ к файловому менеджеру: из-за различных поломок графическая оболочка на домашнем компьютере может быть недоступна, а на серверах используется только консольный интерфейс. К тому же копирование файлов Ubuntu через терминал намного эффективнее, и вы сами в этом убедитесь. Сегодня мы рассмотрим не только обычное копирование командой cp Linux, но и не совсем обычное: с помощью tar и find.
Название утилиты cp - это сокращение от Copy, что означает копировать. Утилита позволяет полностью копировать файлы и директории. Общий синтаксис cp выглядит вот так: $ cp опции файл-источник файл-приемник Или: $ cp опции файл-источник директория-приемник/ После выполнения команды файл-источник будет полностью перенесен в файл-приемник. Если в конце указан слэш, файл будет записан в заданную директорию с оригинальным именем. Утилита имеет несколько интересных опций, которые могут сильно помочь при нестандартных задачах копирования, поэтому давайте их рассмотрим:
Примеры копирования файлов в linux Теперь, когда вы знаете основные опции, можно перейти к практике. Например, мы хотим скопировать некую картинку из домашней папки в подкаталог pictures: cp ~/pic.png ~/pictures/ Или можем явно указать имя новой картинки: cp ~/pic.png ~/pictures/wallpaper.png Копирование папок осуществляется с помощью ключа -r: cp -R ~/папка ~/Документы/ После выполнения этой команды копирования ~/папка будет скопирована в папку ~/Документы. Главное, не забывайте поставить слэш в конце выражения или использовать опцию -t. Иначе папка ~/документы будет перезаписана. По умолчанию команда cp Linux перезаписывает существующие файлы или папки, но можно заставить утилиту спрашивать, нужно ли перезаписывать каждый файл, если вы не уверены в правильности составления команды: Есть и противоположная опция -n, означающая "никогда не перезаписывать существующие файлы". Опция -u полезна в следующем случае: вы знаете или предполагаете, что в директории, куда копируется файл, есть старая его версия, тогда оператор -u выполнит замену на новую версию: cp -u ~/test ~/Documents/test Сp также поддерживает специальные символы замены * и ?. Например, следующая команда скопирует все файлы, начинающиеся на test: cp ~/test* ~/Документы/ Если нужно применить более сложные регулярные выражения, придётся комбинировать утилиту cp с find или egrep. В случае, если важно сохранить права доступа к файлу и его владельца, нужно использовать опцию -p: cp -p ~/test* ~/Документы/ Для упрощения использования команды можно применять синтаксис фигурных скобок. Например, чтобы создать резервную копию файла, выполните: $ cp test.conf{,.bak} Будет создан файл с таким же именем и расширением .bak По умолчанию в cp не отображается прогресс копирования файла , что очень неудобно при работе с большими файлами, но его можно легко посмотреть с помощью утилиты cv. Копирование файлов по регулярным выражениям в Linux В утилите find можно применять различные условия и регулярные выражения для поиска файлов. Я уже немного писал о ней в статье как найти новые файлы в Linux . Мы можем скопировать все найденные с помощью find файлы, вызвав для каждого из них команду cp. Например, копируем все файлы в текущей директории, содержащие в имени только цифры: find . -name [0-9] -exec cp {} ~/Документы \ Здесь точка указывает на текущую директорию, а параметр name задает регулярное выражение. Параметром exec мы задаем, какую команду нужно выполнить для обнаруженных файлов. Символ {} - подставляет имя каждого файла. Но не find'ом единым такое делается. То же самое можно получить, запросив список файлов директории в ls, отфильтровав его по регулярному выражению egrep и передав имена файлов по очереди в cp с помощью xargs: ls -1 ~/ | egrep '[a-zA-Z]' | xargs cp -t ~/Папка/ Это не совсем удобный способ копировать файлы Linux, но всё же он возможен. Будут скопированы все файлы из домашней директории, содержащие в имени только английские буквы. Копирование содержимого файлов в Linux Вы можете не только копировать сами файлы, но и управлять их содержимым. Например, склеить несколько файлов в один или разрезать файл на несколько частей. Утилита cat используется для вывода содержимого файла, в комбинации с операторами перенаправления вывода Bash вы можете выполнять копирование содержимого файла Linux в другой файл. Например: cat файл1 > файл2 Если файл был не пустым, он будет перезаписан. Или мы можем склеить два отдельных файла в один: cat файл1 файл2 > файл3 Специальное копирование файлов в Linux с помощью tar Linux интересен тем, что позволяет выполнять одно и то же действие различными путями. Копирование в Linux тоже может быть выполнено не только с помощью cp. При переносе системных файлов в другой каталог, резервном копировании системных файлов и т.д. важно чтобы сохранились атрибуты, значения владельцев файлов и символические ссылки как они есть без какой-либо модификации. Утилита cp тоже может справиться с такой задачей? если указать опцию -p, но можно использовать утилиту архивации tar. Мы не будем создавать никаких файлов архивов, а построим туннель. Первая часть команды пакует файл и отправляет на стандартный вывод, а другая сразу же распаковывает в нужную папку: tar cf - /var | ( cd /mnt/var && tar xvf - ) Здесь мы полностью копируем содержимое папки /var в папку /mnt/var. Так вы можете копировать папку Linux, причём абсолютно любую или даже целую операционную систему. Теперь вы знаете, как выполняется копирование файлов Ubuntu и в Linux в целом. Как видите, в терминале это выполняется намного быстрее и эффективнее, чем с помощью графического интерфейса, если помнить нужные команды. Если у вас остались вопросы, спрашивайте в комментариях! |
|||||||
Прикрепленные файлы:
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|