Разное

Копирование файлов linux: scp команда Linux. Копирование файлов scp

Содержание

scp команда Linux. Копирование файлов scp

Команда scp — это утилита, которая работает по протоколу SSH, а значит, все что вам нужно для передачи файла на компьютер, это чтобы на нем был запущен SSH сервер, а также вы должны знать логин и пароль для подключения к нему. С помощью команды scp вы можете не только перемещать файлы между локальной и удаленной системой, но и между двумя удаленными системами. Для этого тоже будет достаточно знать пароли от них. И в отличие от Rsync вам не нужно авторизоваться на одном из серверов.

В чем отличие SSH от SCP?

SSH (Secure Shell) – защищенный сетевой протокол для безопасного управления сетевыми сервисами. Используется для выполнения команд на удаленной стороне.

SCP (Secure Copy Protocol) – протокол для безопасной передачи файлов между удаленной и локальной системой. Этот протокол основан на SSH протоколе.

Обычно если у вас есть доступ к SSH, то есть доступ и к SCP, но не всегда это работает в обратном направлении, к примеру хостинг провайдеры могут предоставить доступ к SCP для передачи файлов, но доступ к терминалу через SSH заблокировать.

Как работает scp

Эта команда представляет собой специальную утилиту, способную работать только по протоколу SSH (Secure Shell). Главное требование для передачи информации с одного ПК на другой – запустить специальный север SSH. Пользователь должен иметь логин и пароль от сервера, так как без этой информации его запуск будет невозможен.

Команда дает возможность перемещать документы различного объема. Делать это можно не только между локальной и удаленной системой, но и между 2 удаленными серверами. Для осуществления мероприятия потребуется знать логины и пароли.

Синтаксис

scp [опции][что нужно копировать][куда копировать]

Утилита scp отличается высокой функциональностью. Она способна принимать на вход большое количество параметров, а также позволяет копировать отдельные файлы и директории. Они указываются в аргументе «что нужно скопировать».

При выполнении процедуры требуется обязательно указать, куда требуется перенести файлы и папки. Информация вводится в аргументе «куда нужно скопировать».

Два вышеописанных аргумента могут иметь различные пути – как локальный, так и удаленный. Есть возможность скопировать информацию с удаленного персонального компьютера на стационарный, а также осуществить процедуру с точностью до наоборот.

Аргументы «что нужно скопировать» и «куда нужно скопировать» имеют свой специфический синтаксис:

(имя пользователя)-(IP)-(путь к требуемому файлу или директории)

В данном случае «имя пользователя» — это логин, который используется при запуске специального сервера SSH. IP-адрес персонального компьютера или хоста. Именно на них или с них будут копироваться файлы и директории.

Для осуществления поставленной задачи можно воспользоваться специальными опциями, которые поддерживает утилита. Основные из них:

  • «-1» — запуск специального протокола SSH-1.
  • «-2» — запуск специального протокола SSH-2.
  • «-В» — включение пакетного режима, который дает возможность переместить одновременно несколько файлов и директорий.
  • «-С» — запуск опции сжатия.
  • «-I» — есть возможность установки ограничения скорости передачи (измеряется в кбит/сек).
  • «-О» — с помощью такой команды задается требуемая опция на сервере SSH.
  • «-Р» — это позволит сохранить время, когда прошла модификация.
  • «-R» — имеется возможность рекурсивного копирования нескольких директорий.
  • «-V» — запуск наиболее подробного режима эксплуатации утилиты SCP Linux.

Примеры

Стоит изучить главные направления, которые весьма актуальны при использовании команды scp.

Создание копий локальных файлов

К примеру, с помощью протокола SSH нужно скопировать  «file.dat» на ПК с IP-адресом 195.161.114.71 (в директорию «/home/user»). Для этого в командной строке потребуется ввести:

scp file.dat [email protected]: /home/user

Чтобы не вводить IP-адрес сервера, можно указать доменное имя.

scp file.dat [email protected]: /home/user

Перемещение файла с удаленного ПК на локальный компьютер

В данном случае требуется ввести информацию с точностью до наоборот

scp [email protected] ru: /home/user/file.dat

Создание копии папки

К примеру, требуется перенести директорию «/var/log/exim4» с локального к удаленному компьютеру «/home/user/copia».

В данном случае потребуется использование опции «-R». Необходимо ввести в командной строке

scp –R /var/log/exim4 [email protected]: /home/user/copia

SCP Команда: На Что Обратить Внимание

Поскольку SCP использует шифрование SSH, для копирования файла вам потребуется пароль ssh. Кроме того, необходимо иметь право на чтение на машине, с которой вы собираетесь копировать, и право на запись на машине(ах), куда вы будете копировать.

Для аутентификации и настройки соединения вам нужно будет создать пару ключей ssh с помощью следующей команды:

ssh-keygen -t rsa

Вы копируете этот ключ в удалённую систему, используя:

ssh-copy-id [email protected]_machine

Открытый ключ будет скопирован сразу после аутентификации на удалённом(ых) компьютере(ах), после чего вы сможете выполнить перенос.

Если вы не помните пароль(и) root для какой-либо из систем, вы можете попросить клиента ssh выбрать файл, из которого закрытый идентификационный ключ для подтверждения RSA будет считываться автоматически.

Для протокола версии 2 дефолтный путь идентификации ключа хоста — ~/.ssh/id_dsa

, а для версии протокола 1 — ~/.ssh/id_rsa. Затем нужно выяснить, где хранятся резервные копии закрытых и открытых ключей, чтобы вы могли применить команду ssh для их автоматического использования. 

Для пути /back-up/home/jack/.ssh команда выглядит следующим образом:

ssh -i /back-up/home/user/.ssh/id_dsa [email protected]

Совет: значением по умолчанию этого параметра является –overwrite [yes], поэтому, если вы не укажете опцию –overwrite no или –overwrite ask в своей команде scp, операция перезапишет файлы с одинаковыми названиями и местоположениями без каких-либо предупреждений.

Если вы копируете большие файлы, мы рекомендуем использовать сеанс tmux или запустить команду на другом экране. Кроме того, вы также должны использовать опцию -v. Это заставит scp отображать любые отладочные соединения, проблемы с аутентификацией или конфигурацией.

Прежде чем начать

Команда scp  использует ssh для передачи данных, поэтому она требует ключ SSH или пароль для аутентификации на удаленном систем.

Двоеточие(:) в scp различие между локальным и удаленным хостами.

Чтобы иметь возможность копировать файлы, необходимо иметь по крайней мере разрешения на чтение исходного файла и разрешение на запись в целевой системе.

Будьте осторожны при копировании файлов с одинаковым именем и расположением на обеих системах, scp будет перезаписывать файлы без предупреждения.

При передаче больших файлов рекомендуется запустить команду scp внутри экрана или tmux сессии в Linux.

Копирование файлов и каталогов между двумя системами с помощью SCP

Скопируйте локальный файл в удаленную систему с помощью команды scp

Чтобы скопировать файл из локальной в удаленную систему, выполните следующую команду:

scp file.

txt [email protected]:/remote/directory

Вот, file.txt это имя файла, который мы хотим скопировать, пользователь remote_username на удаленном сервере, 10.10.0.2 является сервером IP-адрес. В /remote/directory это путь к папке, в которую вы хотите скопировать файл, если вы не укажите удаленный каталог, то файл будет скопирован на удаленный домашний каталог пользователя.

Вам будет предложено ввести пароль пользователя, и процесс передачи начнется.

[email protected]’s password: file.txt 100% 0 0.0KB/s 00:00

При отсутствии имени файла в целевом расположении файл копируется с исходным именем. Если вы хотите сохранить файл под другим именем, вам нужно указать новое имя:

scp file.txt [email protected]:/remote/directory/andreyex.txt

Если SSH на удаленным хосту прослушивает порт по умолчанию 22, то вы можете указать порт, используя аргумент -P :

ssh -P 2322 file.txt [email protected]:/remote/directory

Команда для копирования каталога такая же, как при копировании файлов. Единственная разница заключается в том, что вы должны использовать флаг -r  для рекурсии.

Скопировать папку с локального на удаленную систему используйте опцию -r :

scp -r /local/directory [email protected]:/remote/directory

Копирование удаленного файла в локальную систему с помощью команды scp

Чтобы скопировать файл из удаленной системы в локальную, используйте удаленное расположение в качестве источника и локальное расположение в качестве назначения.

Например, чтобы скопировать файл file.txt с удаленного сервера с IP 10.10.0.2 выполните следующую команду:

scp [email protected]:/remote/file.txt /local/directory

Если вы еще не установили беспарольный SSH для входа на удаленный компьютер, вам будет предложено ввести пароль пользователя.

Удалённый Файл на Локальную Машину

В этом процессе источник и цель команды меняются местами, что должно отразиться на вашем синтаксисе. В этот раз мы пытаемся скопировать файл

scp. zip с того же удалённого хоста на наш локальный компьютер:

scp [email protected]:/writing/articles/SCP.zip Users/Olha/Desktop

Опять же, это должно вызвать тот же вывод входа в систему через SSH, где вы должны ввести пароль, если аутентификация не была отключена привилегиями sudo или вы не заставили ssh-клиент использовать закрытый ключ на вашем компьютере.

Копирование файла между двумя удаленными системами с помощью команды scp

В отличие от rsync, при использовании scp вы не должны входить в один из серверов для передачи файлов с одного на другую удаленную машину.

Следующая команда копирует файл /files/file.txt с удаленного хоста host1.com в директорию /files на удаленном хосте host2.com.

scp [email protected]:/files/file.txt [email protected]:/files

Вам будет предложено ввести пароли для обеих удаленных учетных записей. Данные будут переносить сразу от одного удаленного хоста к другому.

Для маршрутизации трафика через машину, используйте опцию -3:

scp -3 [email protected] com:/files/file.txt [email protected]:/files

Удалённый Файл в Другое Удалённое Местоположение

Чтобы скопировать файлы с одного удалённого хоста на другой, вам нужно будет ввести пароли для обеих учётных записей после запуска этой команды в терминале.

Пример:

scp [email protected]:/writing/article/scp.zip [email protected]:/publishing

Приведённая выше команда копирует исходный файл /writing/article/scp.zip с одного хоста на другой. Чтобы скопировать папки, просто добавьте параметр -r и укажите путь к папке, а не файл внутри неё, как мы делали раньше.

При нормальных обстоятельствах файл копируется непосредственно с одного удалённого хоста на другой. Однако, если вы хотите перенаправить операцию через ваш компьютер, вы можете добавить опцию -3:

scp -3 [email protected]:/writing/article/scp.zip [email protected]:/publishing

Вот и всё!

Заключение

Мы рассмотрели наиболее распространенные примеры работы с командой scp. Более подробную информацию можно получить в соответствующих man-страницах.

[spoiler title=»Источники»]
  • https://losst.ru/kopirovanie-fajlov-scp
  • https://ybez.ru/post/kak-rabotat-s-scp-v-windows/
  • https://www.vseprolinux.ru/scp-linux
  • https://www.hostinger.ru/rukovodstva/scp-komanda-linux-dlia-kopirovanija-failov/
  • https://andreyex.ru/linux/komandy-linux-i-komandy-shell/ispolzovanie-komandy-scp-dlya-bezopasnoj-peredachi-fajlov-v-linux/
  • https://ITProffi.ru/peredacha-fajlov-v-linux-s-pomoshhyu-scp/
[/spoiler]

Как скопировать файлы с помощью команды ср в Linux

Это руководство покажет вам, как копировать файлы и каталоги в вашей системе с помощью командной строки Linux.

Команда cp используется для копирования файлов.

 

Как скопировать файл из одной директории в другую с помощью Linux

Синтаксис для копирования файла с одного места на другое выглядит следующим образом:

cp /source/path/name /target/path/name

 

Например представьте, что вы имеете следующую структуру папок:

  • home
    • andreyex
      • documents
        • folder_one
          • file_one
          • file_two
          • file_three
        • folder_two

Если вы хотите скопировать file_one из текущего местоположения в /home/andreyex/documents/folder_one в /home/andreyex/documents/folder_two, то вы должны ввести следующую команду в командной строке:

cp /home/andreyex/documents/folder_one/file_one /home/andreyex/documents/folder_two/file_one

 

Ярлыки вы можете сделать здесь.

Главная часть может быть заменена на тильду (~), что объясняется в этой статье. Это изменяет команду на:

cp ~/documents/folder_one/file_one ~/documents/folder_two/file_one

Вы можете просто опустить имя файла для цели, если вы собираетесь использовать то же имя файла

cp ~/documents/folder_one/file_one ~/documents/folder_two

 

Если вы уже в целевой папке вы можете просто заменить путь к цели с полной остановкой.

cp ~/documents/folder_one/file_one

 

В качестве альтернативы, если вы уже в исходной папке вы можете просто указать имя файла в качестве источника следующим образом:

cp file_one ~/documents/folder_two

 

Как сделать резервную копию перед копированием файлов в Linux

В предыдущем разделе folder_one содержит файл с именем file_one и folder_two не делает. Представьте себе, что folder_two имеет файл с именем file_one и вы запустили следующую команду:

cp file_one ~/documents/folder_two

 

Приведенная выше команда перезапишет file_one, который в настоящее время находится в folder_two. Там нет подсказок, нет предупреждения и сообщения об ошибках, потому что, вы указали действительную команду.

Вы можете принять меры предосторожности при копировании файлов в Linux, для создания резервной копии файла, прежде чем он переписывает его. Просто используйте следующую команду:

cp -b /source/file /target/file

 

Например:

cp -b ~/documents/folder_one/file_one ~/documents/folder_two/file_one

 

В папке назначения теперь присутствует файл, который был скопирован и там будет также файл с тильдой (~) в конце, которая является резервной копией оригинального файла.

Вы можете изменить команду резервного копирования для работы в несколько ином виде, так что она создает пронумерованные резервные копии. Вы можете это сделать, если вы уже скопировали файлы и резервные копии уже существуют. Это является одной из форм контроля версий

cp --backup=numbered ~/documents/folder_one/file_one ~/documents/folder_two/file_one

 

Имя файла для резервных копий будет меняться: file_one. ~1~, file_one.~2~ и т.д.

 

Как запросить перед перезаписью файлов при копировании в Linux

Если вы не хотите делать резервные копии файлов, лежащих в вашей файловой системе, но вы также хотите, убедиться, что команда копия не перезаписывает файл без разбора вы можете получить приглашение, чтобы показать вопросом, не хотите ли вы перезаписать.

Для этого используйте следующий синтаксис:

cp -i /source/file /target/file

 

Например:

cp -i ~/documents/folder_one/file_one ~/documents/folder_two/file_one

 

Сообщение будет выглядеть следующим образом :  cp: overwrite ‘./file1’?

Для перезаписи файла нажмите Y на клавиатуре или для отмены нажмите N или CTRL и C одновременно.

 

Что происходит при копировании символьных ссылок в Linux

Символическая ссылка немного походит на ярлык на рабочем столе. Содержимое символической ссылки является адрес физического файла.

Представьте себе, вы имеете следующую структуру папок:

  • home
    • andreyex
      • documents
        • folder_one
        • folder_two
          • file_one (symbolic links points to folder_one/file_one)
        • folder3

Посмотрите на следующую команду:

cp ~/documents/folder_one/file_one ~/documents/folder3/file_one

 

Здесь не должно быть ничего нового, так как он копирует физический файл из одной папки в другую.

Что происходит, однако, если скопировать символическую ссылку из folder_two в folder3?

cp ~/documents/folder_two/file_one ~/documents/folder3/file_one

 

Файл, который копируется в folder3 не будет символической ссылкой. Это на самом деле файл, на который указывает символическая ссылка, так на самом деле вы получите тот же результат, как если бы путем копирования file_one из folder_one.

Кстати вы можете получить тот же результат с помощью следующей команды:

cp -H ~/documents/folder_two/file_one ~/documents/folder3/file_one

 

Просто чтобы быть уверенным, хотя есть еще один переключатель, который абсолютно заставляет копировать файл, а не символическую ссылку:

cp -L ~/documents/folder_two/file_one ~/documents/folder3/file_one

 

Если вы хотите скопировать символическую ссылку необходимо указать следующую команду:

cp -d ~/documents/folder_two/file_one ~/documents/folder3/file_one

 

Чтобы символическую ссылку скопировать, а не физический файл с помощью следующей команды:

cp -P ~/documents/folder_two/file_one ~documents/folder3/file_one

 

Как создавать жесткие ссылки с помощью команды ср

В чем разница между символической ссылкой и жесткой связи?

Символическая ссылка – это ярлык для физического файла. Он не содержит больше, чем адрес на физический файл.

Жесткая связь, на основную ссылку на тот же физический файл, но с другим именем. Это почти как прозвище. Это отличный способ организации файлов, не занимая дальнейшего дискового пространства.

Это руководство расскажет вам все, что вам нужно знать о жестких ссылках .

Вы можете создать жесткую ссылку с помощью команды ср.

cp -l ~/source/file ~/target/file

 

В качестве примера того, почему вы могли бы использовать жесткую ссылку учесть, что у вас есть папка под названием видео и в этой папке видео у вас есть действительно большой видео файл с именем honeymoon_video.mp4. Теперь представьте, что вы также хотите, чтобы видео быть известным как barbados_video.mp4, потому что он также имеет кадры Барбадоса.

Вы можете просто скопировать файл и дать ему новое имя, но это означает, что вы увеличиваете в два раза больше дискового пространства для того, что, по существу, то же самое видео.

Вы могли бы вместо того, чтобы создать символическую ссылку с именем barbados_video. mp4, которая указывает на файл honeymoon_video.mp4. Это будет работать хорошо, но если кто-то удалил honeymoon_video.mp4 вы остались бы со ссылкой и ничего другого и связь по-прежнему занимает дисковое пространство.

Единственное отличие состоит в том, что они содержат разное количество индексных дескрипторов. (уникальные идентификаторы). Удаление файла honeymoon_video.mp4 не удаляет файл, но только снижает количество для этого файла на 1. Файл будет удален только если все ссылки на этот файл будут удалены.

Чтобы создать ссылку вы могли бы сделать что-то вроде этого:

cp -l /videos/honeymoon_video.mp4 /videos/barbados_video.mp4

 

Как создать символические ссылки с помощью команды ср

Если вы хотите создать символическую ссылку вместо жесткой ссылки вы можете использовать следующую команду:

cp -s /source/file /target/file

 

Опять же я бы лично вообще используют команду ln -s, но вместо этого работает хорошо.

 

Как скопировать файлы, если они новее

Если вы хотите скопировать файлы в папку, но только с перезаписью файлов назначения, если исходный файл новее, то вы можете использовать следующую команду:

cp -u /source/file /target/file

 

Стоит отметить, что если файл не существует на целевой стороне, то копия будет иметь место.

 

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

Вы можете предоставить более одного исходного файла внутри команды копирования следующим образом:

cp /source/file_one /source/file_two /source/file_three /target

 

Приведенная выше команда будет копировать file_one, file_two и file_three в целевую папку.

Если файлы соответствуют определенному шаблону, то вы можете также использовать групповые символы следующим образом:

cp /home/andreyex/music/*.mp3 /home/andreyex/music2

 

Приведенная выше команда будет копировать все файлы с расширением .mp3 в папку music2.

 

Как скопировать папки

Копирование папок такое же, как копирование файлов.

Например представьте, что вы имеете следующую структуру папок:

Представьте, что вы хотите переместить папку folder_one в папку folder_two следующим образом:

Вы можете использовать следующую команду:

cp -r /home/andreyex/documents/folder_one /home/andreyex/documents/folder_two

 

Кроме того, можно использовать следующую команду:

cp -R /home/andreyex/documents/folder_one /home/andreyex/documents/folder_two

 

Это копирует содержимое folder_one, а также любые суб-каталоги и файлы в пределах подкаталогов.

 

Резюме

Это руководство дало вам инструменты требующиеся для копирования файлов в Linux. Для всего остального вы можете использовать команду Linux man.

man cp

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Буфер обмена в Linux (копирование и вставка). Linux статьи

Хочу рассказать о некоторых особенностях буфера обмена в Linux. О буфере копирования и про буфер выбора (первичный буфер), а также про копирование и вставку текста в терминале.

Буфер копирования

Стандартно для копирования и вставки объектов в Linux используются сочетания клавиш Ctrl+C и Ctrl+V. При копировании текст (или любой другой объект) в таком случае попадает в обычный буфер копирования. Затем вы можете вставить этот текст в другом месте.

Буфер выбора (первичный буфер)

В Linux существует еще буфер выбора или первичный буфер. Текст, который вы выделяете в любой программе, автоматически попадает в буфер обмена! Это удобно, выделил текст, открыл другое окно и вставил этот кусок текста. Есть некоторые исключения, но они незначительны. Например, у меня в Ubuntu это не работает, если программа использует JVM (Java Virtual Machine).

Кстати, именно этим объясняется следующие поведение. Вы выделили текст в программе, затем открыли другую программу и выделили какой-нибудь текст в ней. После этого, выделение текста в первой программе автоматически снимется, а текст который вы выделили последним, попадет в буфер выбора.

Копирование и вставка в терминале

В терминале для копирования и вставки не работают стандартные сочетания Ctrl+V, Ctrl+C. Это связано с тем, что исторически Ctrl+C это сочетание клавиш для прерывания текущего процесса. Поэтому, для копирования и вставки при работе в терминале используются сочетания Ctrl+Insert и Shift+Insert соответственно. В Gnome терминале и, наверное, во многих других также работают сочетания Shift+Ctrl+C и Shift+Ctrl+V. Они же указаны в главном меню программы в разделе Правка.

Также в терминале работают сочетания клавиш Ctrl+U, чтобы вырезать текст; и Ctrl+Y для вставки текста. Сочетание Ctrl+U работает особенным образом — в буфер копируется вся текущая строка, введенная в терминале, независимо от того, выбрали вы какой-нибудь текст мышкой или нет, а сама строка пропадает с экрана.

Копирование файлов по ssh. Команда scp. Linux статьи

Для копирования файлов по ssh между компьютерами под управлением Linux применяется команда scp. Рассмотрим, как можно копировать файлы с одного компьютера на другой по ssh, используя команду scp.

Синтаксис команды scp

Синтаксис команды scp следующий:

scp [опции] что_копируем куда_копируем

Команда scp принимает на вход различные опции (см. примеры ниже), а также файл или директорию, которую необходимо скопировать (аргумент что_копируем). Последним аргументом указывается путь назначения, в который будет произведено копирование (аргумент куда_копируем).

Аргументы что_копируем и куда_копируем могут быть, как локальными путями, так и удаленными. То есть можно копировать файлы с удаленного компьютера на локальный и наоборот. Можно копировать файлы с удаленного компьютера на другой удаленный компьютер.

что_копируем и куда_копируем имеют следующий синтаксис:

имя_пользователя@IP_адрес:путь до файла или директории

имя_пользователя — это имя пользователя для подключения по ssh.
IP_адрес — IP адрес компьютера (хоста) на который или с которого будет копирование.

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

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

Рассмотрим простой пример. Скопируем по ssh локальный файл myfile.dat на компьютер с IP адресом 192.168.1.74 в директорию /home/pingvin.

scp myfile.dat [email protected]:/home/pingvin

Указываем порт

Выполним тоже самое, но укажем еще и порт для подключения по ssh (используем опцию -P). Обратите внимание, что опция для указания порта это прописная буква P!

scp -P 6773 myfile.dat [email protected]:/home/pingvin

Копирование файла с удаленного компьютера на локальный

Теперь наоборот. Скопируем файл с удаленного компьютера в нашу текущую директорию.

scp [email protected]:/home/pingvin/myfile.dat .

Копирование директории

Скопируем с нашего локального компьютера директорию ~/mydir на удаленный компьютер в директорию /home/pingvin. Используется опция -r.

scp -r ~/mydir [email protected]:/home/pingvin

Копирование со сжатием данных (ускорение)

Скорость копирования файлов можно увеличить. Для этого используется опция -C. Данная опция выполняет сжатие файлов при копировании, таким образом по сети передается меньшее количество данных. Сжатие выполняется только при передаче данных, то есть результирующий файл будет в первоначальном виде.

Пример копирования файла myfile.dat с включенным сжатием.

scp -C myfile.dat [email protected]:/home/pingvin

Сохранение атрибутов файла

Чтобы результирующий файл получил те же атрибуты что и исходный файл, используется опция -p (не путать с опцией -P для указания порта). При использовании опции -p сохраняются права доступа к файлу, владелец файла, временные метки и так далее.

scp -p myfile.dat [email protected]:/home/pingvin

Для получения полной справки по команде scp выполните в терминале:

man scp

Копирование и вставка файлов — это одна из самых простых вещей, которые вы можете делать на компьютере.

В Linux у вас есть несколько вариантов выполнения этой работы.

В командной строке все более просто, что дает вам больше контроля, а в некоторых случаях значительно упрощает.

Скопировать один файл

Каждый раз, когда вы хотите скопировать файл или папку в командной строке Linux, вы будете использовать команду cp.

cp является сокращением copy.

Синтаксис тоже прост.

Используйте cp, затем файл, который вы хотите скопировать, и место назначения, куда вы хотите его переместить.

cp your-file.txt ~/Documents/

Это, конечно, предполагает, что ваш файл находится в том же каталоге, из которого вы работаете.

Вы можете указать оба.

cp ~/Downloads/your-file.txt ~/Documents/

У вас также есть возможность переименовать ваш файл при копировании.

Укажите новое имя в пункте назначения.

cp ~/Downloads/your-file.txt ~/Documents/new-name.txt

Скопируйте папку и ее содержимое

Чтобы скопировать папку и ее содержимое, вам нужно указать команде cp рекурсивное копирование.

Это достаточно просто => с флагом -r.

cp -r ~/Downloads/pictures-directory ~/Pictures/family-vacation-pics

Весь остальной ваш синтаксис точно такой же.

Флаг -r служит для указания cp, что он работает с каталогом и должен копировать его содержимое.

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

Вы также можете скопировать несколько файлов. Командная строка Linux позволяет указывать сразу несколько элементов в квадратных скобках {}.

Вы можете использовать их, чтобы перечислить имена каждого копируемого файла через запятую.

cp ~/Downloads/{file1.txt,file2.jpg,file3.odt} ~/Documents/

Все три файла разных типов будут скопированы в каталог Documents.

Копировать все файлы одного типа

Если у вас есть тонна файлов одного типа для копирования, вы можете использовать подстановочный знак *.

Звездочка / подстановочный знак указывает командной строке Linux принимать абсолютно все файлы в этом месте.

Таким образом, если вы скажете Linux, чтобы он копировал * .jpg, он скопирует все файлы JPG, независимо от имени или того, что находится перед частью названия файла .jpg.

cp ~/Downloads/*.jpg ~/Pictures/

Если вы хотите использовать несколько типов файлов, например JPG и PNG, вы можете использовать скобки

cp ~/Downloads/*.{jpg,png} ~/Pictures/

Переместить файл или папку

Если вы пришли сюда, чтобы переместить файл из одного места в другое, не создавая дубликаты, это тоже можно сделать легко, но для перемещения файла требуется команда mv.

Синтаксис очень похож на CP.

mv ~/Downloads/your-file.txt ~/Documents/

Точно так же вы можете переименовать его.

mv ~/Downloads/your-file.txt ~/Documents/renamed.txt

Однако есть одно существенное отличие. Вам не нужен флаг -r для перемещения всей папки.

mv ~/Downloads/downloaded-folder ~/Pictures/vacation-pics

Это все.

Вы готовы начать копирование и перемещение файлов из командной строки.

Вы можете увидеть, что способ командной строки может быть очень эффективным в некоторых ситуациях.

В других случаях, тем не менее, может быть проще использовать графический интерфейс.

Со временем, работая с Linux, вы привыкнете выбирать, что для вас лучше.

 

Поделитесь статьей:

Как скопировать файл / папку из локальной системы в удаленную систему в Linux? Перенос файла с одного сервера на другой или с локального на удаленный является одной из рутинных задач администратора Linux. Если кто-то скажет «нет», я не приму это в серьез, потому что это одно из регулярных занятий, которым приходится заниматься. Это можно сделать разными способами, и мы стараемся охватить все возможные варианты. Вы можете выбрать тот метод, который вы предпочитаете. Также проверьте другие команды, которые могут помочь вам в каких-то других целях. Я протестировал все эти команды и скрипты в своей тестовой среде, поэтому вы можете использовать их для своей обычной работы. По умолчанию каждый работает с SCP, потому что это одна из встроенных команд, которую все используют для копирования файлов. Но команды, которые перечислены в этой статье, умны, поэтому попробуйте их использовать, если вы хотите попробовать что-то новое. Это можно легко сделать четырьмя способами, описанными ниже.

  • SCP: scp копирует файлы между хостами в сети. Он использует ssh для передачи данных, использует ту же аутентификацию и обеспечивает ту же безопасность, что и ssh.

  • RSYNC: rsync — это быстрый и необычайно универсальный инструмент для копирования файлов. Он может копировать локально, на / с другого хоста через любую удаленную оболочку или на / с удаленного демона rsync.

  • PSCP: pscp — это программа для параллельного копирования файлов на несколько хостов. Он предоставляет такие функции, как передача пароля в scp, сохранение вывода в файлы и тайм-аут.

  • PRSYNC: prsync — это программа для копирования файлов параллельно с несколькими хостами. Он предоставляет такие функции, как передача пароля в ssh, сохранение вывода в файлы и тайм-аут.

Метод 1: Копировать файлы / папки из локальной системы в удаленную систему в Linux с помощью команды SCP

Команда scp позволяет нам копировать файлы / папки из локальной системы в удаленную систему.

Мы собираемся скопировать файл output.txt из моей локальной системы в удаленную систему 2g.CentOS.com в каталоге /opt/backup.

# scp output.txt [email protected]:/opt/backup

output.txt                                                                                              100% 2468     2.4KB/s   00:00

Мы собираемся скопировать два файла output.txt и passwd-up.sh из моей локальной системы в удаленную систему 2g.CentOS.com в каталоге /opt/backup.

# scp output.txt passwd-up.sh [email protected]:/opt/backup

output.txt                                                                                              100% 2468     2.4KB/s   00:00
passwd-up.sh                                                                                            100%  877     0.9KB/s   00:00

Мы собираемся скопировать каталог shell-script из моей локальной системы в удаленную систему 2g.CentOS.com в каталоге /opt/backup.

Это скопирует каталог shell-script и связанные файлы в каталог /opt/backup.

# scp -r /home/daygeek/2g/shell-script/ [email protected]:/opt/backup/

output.txt                                                                                              100% 2468     2.4KB/s   00:00
ovh.sh                                                                                          		100%   76     0.1KB/s   00:00
passwd-up.sh                                                                                            100%  877     0.9KB/s   00:00
passwd-up1.sh                                                                                            100%    7     0.0KB/s   00:00
server-list.txt                                                                                         100%   23     0.0KB/s   00:00

Способ 2: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью Shell Script с командой scp?

Если вы хотите скопировать один и тот же файл на несколько удаленных серверов, создайте следующий небольшой сценарий оболочки для достижения этой цели.

Для этого получите список серверов и добавьте их в файл server-list.txt.

Убедитесь, что вы обновили список серверов в файле server-list.txt.

Каждый сервер должен быть в отдельной строке.

Наконец, укажите местоположение файла, который вы хотите скопировать, как показано ниже.

# file-copy.sh

#!/bin/sh
for server in `more server-list.txt`
do
  scp /home/daygeek/2g/shell-script/output.txt [email protected]$server:/opt/backup
done

Как только вы закончите, установите исполняемое на выполнение для файла password-update.sh.

# chmod +x file-copy.sh

Наконец, запустите скрипт, чтобы добиться желаемого результата.

# ./file-copy.sh

output.txt                                                                                              100% 2468     2.4KB/s   00:00
output.txt

Используйте следующий скрипт, чтобы скопировать несколько файлов на несколько удаленных серверов.

# file-copy.sh

#!/bin/sh
for server in `more server-list.txt`
do
  scp /home/daygeek/2g/shell-script/output.txt passwd-up.sh [email protected]$server:/opt/backup
done

Вывод ниже показывает все файлы дважды, так как все скопировано на два сервера.

# ./file-cp.sh

output.txt                                                                                              100% 2468     2.4KB/s   00:00
passwd-up.sh                                                                                            100%  877     0.9KB/s   00:00
output.txt                                                                                              100% 2468     2.4KB/s   00:00
passwd-up.sh

Используйте следующий скрипт для рекурсивного копирования каталога на несколько удаленных серверов.

# file-copy.sh

#!/bin/sh
for server in `more server-list.txt`
do
  scp -r /home/daygeek/2g/shell-script/ [email protected]$server:/opt/backup
done

Выход для вышеуказанного скрипта.

# ./file-cp.sh

output.txt                                                                                              100% 2468     2.4KB/s   00:00
ovh.sh                                                                                          		100%   76     0.1KB/s   00:00
passwd-up.sh                                                                                            100%  877     0.9KB/s   00:00
passwd-up1.sh                                                                                           100%    7     0.0KB/s   00:00
server-list.txt                                                                                         100%   23     0.0KB/s   00:00

output.txt                                                                                              100% 2468     2.4KB/s   00:00
ovh.sh                                                                                          		100%   76     0.1KB/s   00:00
passwd-up.sh                                                                                            100%  877     0.9KB/s   00:00
passwd-up1.sh                                                                                           100%    7     0.0KB/s   00:00
server-list.txt

Метод 3: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью команды PSCP?

Команда pscp напрямую позволяет нам выполнять копирование на несколько удаленных серверов.

Используйте следующую команду pscp, чтобы скопировать один файл на удаленный сервер.

# pscp.pssh -H  2g.CentOS.com /home/daygeek/2g/shell-script/output.txt /opt/backup

[1] 18:46:11 [SUCCESS] 2g.CentOS.com

Используйте следующую команду pscp, чтобы скопировать несколько файлов на удаленный сервер.

# pscp.pssh -H  2g.CentOS.com /home/daygeek/2g/shell-script/output.txt ovh.sh /opt/backup

[1] 18:47:48 [SUCCESS] 2g.CentOS.com

Используйте следующую команду pscp, чтобы рекурсивно скопировать каталог на удаленный сервер.

# pscp.pssh -H 2g.CentOS.com -r /home/daygeek/2g/shell-script/ /opt/backup                     

[1] 18:48:46 [SUCCESS] 2g.CentOS.com

Используйте следующую команду pscp, чтобы скопировать один файл на несколько удаленных серверов.

# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt /opt/backup

[1] 18:49:48 [SUCCESS] 2g.CentOS.com
[2] 18:49:48 [SUCCESS] 2g.Debian.com

Используйте следующую команду pscp, чтобы скопировать несколько файлов на несколько удаленных серверов.

# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt passwd-up.sh /opt/backup

[1] 18:50:30 [SUCCESS] 2g.Debian.com
[2] 18:50:30 [SUCCESS] 2g.CentOS.com

Используйте следующую команду pscp для рекурсивного копирования каталога на несколько удаленных серверов.

# pscp.pssh -h server-list.txt -r /home/daygeek/2g/shell-script/ /opt/backup

[1] 18:51:31 [SUCCESS] 2g.Debian.com
[2] 18:51:31 [SUCCESS] 2g.CentOS.com

Метод 4: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью команды rsync?

Rsync — это быстрый и необычайно универсальный инструмент для копирования файлов.

Он может копировать локально, на / с другого хоста через любую удаленную оболочку или на / с удаленного демона rsync.

Используйте следующую команду rsync, чтобы скопировать один файл на удаленный сервер.

# rsync -avz /home/daygeek/2g/shell-script/output.txt [email protected]:/opt/backup

sending incremental file list
output.txt 

sent 598 bytes  received 31 bytes  1258.00 bytes/sec
total size is 2468  speedup is 3.92

Используйте следующую команду pscp, чтобы скопировать несколько файлов на удаленный сервер.

# rsync -avz /home/daygeek/2g/shell-script/output.txt passwd-up.sh [email protected]:/opt/backup

sending incremental file list
output.txt
passwd-up.sh
 
sent 737 bytes  received 50 bytes  1574.00 bytes/sec
total size is 2537  speedup is 3.22

Используйте следующую команду rsync, чтобы скопировать один файл на удаленный сервер через ssh.

# rsync -avzhe ssh /home/daygeek/2g/shell-script/output.txt [email protected]:/opt/backup

sending incremental file list
output.txt

sent 598 bytes  received 31 bytes  419.33 bytes/sec
total size is 2.47K  speedup is 3.92

Используйте следующую команду pscp, чтобы рекурсивно скопировать каталог на удаленный сервер через ssh.

Это действие скопирует только файлы, а не базовый каталог.

# rsync -avzhe ssh /home/daygeek/2g/shell-script/ [email protected]:/opt/backup

sending incremental file list
./
output.txt
ovh.sh
passwd-up.sh
passwd-up1.sh
server-list.txt
 
sent 3.85K bytes  received 281 bytes  8.26K bytes/sec
total size is 9.12K  speedup is 2.21

Метод 5: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью Shell Script с командой rsync?

Если вы хотите скопировать один и тот же файл на несколько удаленных серверов, создайте следующий небольшой скрипт оболочки для достижения этой цели.

# file-copy.sh

#!/bin/sh
for server in `more server-list.txt`
do
  rsync -avzhe ssh /home/daygeek/2g/shell-script/ [email protected]$server:/opt/backup
done

Вывод для вышеуказанного скрипта оболочки.

# ./file-copy.sh

sending incremental file list
./
output.txt
ovh.sh
passwd-up.sh
passwd-up1.sh
server-list.txt

sent 3.86K bytes  received 281 bytes  8.28K bytes/sec
total size is 9.13K  speedup is 2.21

sending incremental file list
./
output.txt
ovh.sh
passwd-up.sh
passwd-up1.sh
server-list.txt
 
sent 3.86K bytes  received 281 bytes  2.76K bytes/sec
total size is 9.13K  speedup is 2.21

Метод 6: Копирование файлов / папок с локальной системы на несколько удаленных систем в Linux с помощью Shell Script с командой scp?

В приведенных выше двух скриптах оболочки мы должны упомянуть расположение файла и папки в качестве предварительных требований, но здесь я сделал небольшую модификацию, позволяющую скрипту получить файл или папку в качестве входных данных.

Это может быть очень полезно, если вы хотите выполнить копирование несколько раз в день.

# file-copy.sh

#!/bin/sh
for server in `more server-list.txt`
do
scp -r $1 [email protected]$server:/opt/backup
done

Запустите скрипта и укажите имя файла в качестве входных данных.

# ./file-copy.sh output1.txt

output1.txt                                                                                             100% 3558     3.5KB/s   00:00
output1.txt                                                                                             100% 3558     3.5KB/s   00:00

Метод 7: Копировать файлы / папки из локальной системы на несколько удаленных систем в Linux с нестандартным номером порта?

Используйте скрипт оболочки, расположенный ниже, чтобы скопировать файл или папку, если вы используете нестандартный порт.

Если вы используете нестандартный порт, обязательно укажите номер порта, как указано ниже для команды SCP.

# file-copy-scp.sh

#!/bin/sh
for server in `more server-list.txt`
do
scp -P 2222 -r $1 [email protected]$server:/opt/backup
done

Запустите скрипт оболочки и укажите имя файла в качестве входных данных.

# ./file-copy.sh ovh.sh

ovh.sh                                                                                             100% 3558     3.5KB/s   00:00
ovh.sh

Если вы используете нестандартный порт, убедитесь, что вы упомянули номер порта, как указано ниже для команды rsync.

# file-copy-rsync.sh

#!/bin/sh
for server in `more server-list.txt`
do
rsync -avzhe 'ssh -p 2222' $1 [email protected]$server:/opt/backup
done

Запустите сценарий оболочки и укажите имя файла в качестве входных данных.

# ./file-copy-rsync.sh passwd-up.sh 
sending incremental file list
passwd-up.sh

sent 238 bytes  received 35 bytes  26.00 bytes/sec
total size is 159  speedup is 0.58

sending incremental file list
passwd-up.sh

sent 238 bytes  received 35 bytes  26.00 bytes/sec
total size is 159  speedup is 0.58

 

Поделитесь статьей:

Скопируйте файлы Linux и скопируйте каталог с помощью команды cp — базовая команда Linux.

Команда Linux cp обычно используется для копирования файла и скопировать каталог в операционной системе Linux. Команду cp также можно использовать для создания ссылка на другой файл в системе. Выполнение команды cp и всех пример ниже протестирован с использованием bash оболочка в операционной системе Linux Fedora Core.

Эта статья демонстрирует шаг пошаговая процедура на как использовать команду Linux cp для:

• Скопируйте файлы Linux.

• Скопируйте весь файл в каталог.

• Сделайте мягкую ссылку на файл.

Описание команды:

Копировать файлы и каталог.

Тип команды:

В Fedora Core Команда cp операционной системы Linux имеет псевдоним cp -i

[root @ fedora ~] # тип cp

cp имеет псевдоним cp -i

Команда cp ниже скопирует passwd файл из папки / etc в текущий каталог с тем же именем файла.

[корень @ fedora ~] # пароль

/ корень

[корень @ fedora ~] # cp / etc / passwd .

[root @ fedora ~] # ls

anaconda-ks.cfg Рабочий стол install.log install.log.syslog mbox passwd test

[root @ fedora ~] #

Команда cp также может быть используйте для копирования содержимого файла в другие файлы. Пример ниже показаны шаги по копированию имени файла passwd из каталог / etc и поместите файл в текущий каталог, используя новое имя файла.

[корень @ fedora ~] # пароль

/ корень

[корень @ fedora ~] # cp / etc / passwd новый проездной

[root @ fedora ~] # ls

anaconda-ks.cfg Рабочий стол install.log install.log.syslog mbox новый проходной тест

[root @ fedora ~] #

Чтобы скопировать файл и сохранить режим файла, владельца и временные метки используйте cp с параметром -p.

Пример ниже показывает использование опции -p:

[root @ fedora5 ~] # cp -p / etc / passwd.

[root @ fedora5 ~] # ls -l

всего 112

-rw ——- 1 корень root 1209 9 апреля 21:38 anaconda-ks.cfg

drwx —— 2 root root 4096 8 апр 19:06 Рабочий стол

-rw-r — r— 1 root root 28948 9 апреля 21:26 install-fedora.log

-rw-r — r— 1 root root 4152 9 апр, 19:56 install.log.syslog

-rw-r — r— 1 root root 1750 8 апреля 19:00 passwd

[корень @ fedora5 ~] # ls -l / etc / passwd

-rw-r — r— 1 root root 1750 8 апреля 19:00 / etc / passwd

[root @ fedora5 ~] #

Примечание. Команда ls -l использует в приведенном выше примере — проверить пароль файл копируется в режиме сохранения.

Пример ниже показывает шаг использования команды cp в подробном режиме для копирования файла в системе Fedora. Используя CP с подробным режимом мы можем отображать детали запущенного cp команда.

[root @ crooked test] # cp -v test.txt linux.txt

`test.txt ‘->` linux.txt’

[root @ crooked test] # ls -l

всего 8

-rw-r — r— 1 root root 28 июн 29 17:05 linux.текст

-rw-r — r— 1 root root 28 июн 29 16:50 test.txt

В cp команда с опцией –v дает подробный вывод, который показывает, что test.txt файл копируется в файл linux.txt.

Чтобы скопировать каталог обычно команда cp используется с -a , чтобы убедиться, что cp команда архивирует каталог содержание.

[root @ crooked test] # cp –a каталог new_directory

В cp команда с опцией –a создайте идентичную копию каталога с именем directory и назовите каталог как new_directory.

Этот пример показывает, как создать мягкую ссылку с помощью команды cp, в этом примере команда cp используется сделать ссылку на Linux .txt файл.

[root @ crooked test] # cp -vs linux.txt linux-link.txt

`test.txt ‘->` link.txt’

[root @ crooked test] # ls -l

всего 8

lrwxrwxrwx 1 root root 8 29 июня 17:06 linux-link.txt -> linux.txt

-rw-r — r— 1 root root 28 июн 29 16:50 test.txt

Команда cp с параметром –vs создает ссылку (имя linux-link.txt ) в linux.txt файл в подробном режиме.

[root @ fedora test] # cd ..

[корень @ fedora ~] # cp -pr / home / fedoracore5 / test / fedoracore5

[root @ fedora ~] # ls test / fedoracore5 /

Рабочий стол

[корень @ fedora ~] # ls / home / fedoracore5 /

Рабочий стол

[корень @ fedora ~] # ls -al / home / fedoracore5 /

Команда cp с опцией ‘ p ‘ чтобы сохранить режим, право собственности и временные метки файла, опция « r » используется для рекурсивного копирования каталога.

Ниже приведены некоторые флаги и аргументы, которые можно использовать для команда cp:

-f, —force , если существующий целевой файл не может быть открыт, удалите его и попробуй еще раз

-i, —interactive запрашивать перед перезаписью

-l, —link связывать файлы вместо копирования.

-p то же, что и —preserve = режим, владение, отметки времени

-R, -r, —recursive копировать каталоги рекурсивно

-s, —symbolic-link создавать символические ссылки вместо копирования

-u, —update копировать, только если файл SOURCE новее, чем место назначения файл или когда целевой файл отсутствует

-v, —verbose объяснить, что делается

ИМЯ

cp — копировать файлы и каталоги

для получения дополнительной информации используйте команду Linux cp:

# info cp

# man cp

# cp –help

Связанный:

Скопируйте содержимое каталога include скрытые файлы и скрытый каталог с помощью команды cp.

Ключевые слова: команда cp, копировать файл linux, копировать файл, копировать папку, копировать каталог, скопировать каталог linux, команду linux cp, команда копирования linux, связывание файлов, команда копирования, копирование файла и каталога, скопировать содержимое файлов linux, скопировать папку linux.

Справка по команде Linux cp и примеры

В Unix-подобных операционных системах команда cp создает копии файлов и каталогов.

Как и многие другие основные команды Linux, если команда cp выполнена успешно, по умолчанию выходные данные не отображаются.Для просмотра вывода при копировании файлов используйте параметр -v (подробный).

По умолчанию cp перезапишет файлы без запроса. Если имя файла назначения уже существует, его данные будут уничтожены. Если вы хотите получать запрос на подтверждение перед перезаписью файлов, используйте параметр -i (интерактивный).

-a ,
— архив
То же, что и -dR —preserve = ALL . При выполнении копирования постарайтесь сохранить как можно больше исходной файловой структуры, атрибутов и связанных метаданных.Эти метаданные включают данные контекста безопасности, если вы используете SELinux.
— только атрибуты Не копируйте данные файла, только создайте файл с такими же атрибутами. Если целевой файл уже существует, не изменяйте его содержимое. Вы можете точно контролировать, какие атрибуты копируются с помощью опции —preserve .
— резервный [ = контроль ] Сделайте резервную копию каждого существующего файла назначения, который иначе был бы перезаписан или удален.Элемент управления Параметр указывает, какой метод управления версиями использовать; подробности см. в управлении версиями.

В качестве особого случая cp —force —backup создает резервную копию исходного файла , когда исходный файл и dest являются одним и тем же обычным файлом.

-b Аналогично —backup , но не принимает аргумент control ; всегда используется метод управления по умолчанию.
— содержание копии При рекурсивной работе скопируйте содержимое специальных файлов, таких как FIFO и устройства, найденные в / dev .Обычно вы не хотите использовать этот параметр, потому что он может привести к нежелательным результатам, например, к зависанию или заполнению всего диска. Однако этот вариант доступен для особых случаев использования экспертом.
-d Скопируйте сами символические ссылки, а не файлы, на которые они ссылаются, и сохраните жесткие ссылки между исходными файлами в копиях. То же, что и « —no-dereference —preserve = links ».
-f ,
— усилие
Если не удается открыть существующий файл назначения, удалите его и повторите попытку.Этот параметр не действует, если используется параметр -n / —no-clobber . Однако он применяется независимо от -i / —interactive ; ни один вариант не отменяет действие другого.
-i ,
— интерактивный
Запрашивать перед перезаписью (отменяет предыдущую опцию -n ).
-H Следуйте символическим ссылкам, указанным в командной строке, но сохраните обнаруженные ссылки.

Если один из аргументов в командной строке является символической ссылкой, скопируйте указанный файл, а не саму ссылку. Однако, если символическая ссылка обнаруживается во время рекурсивного обхода, она копируется как символическая ссылка, а не как обычный файл.

-l ,
—ссылка
Создавайте жесткие ссылки на файлы вместо их копирования.
-L ,
— разыменование
Всегда переходите по символическим ссылкам в исходном коде ; если источник является символической ссылкой, скопируйте файл, на который имеется ссылка, а не саму символическую ссылку.Если указан этот параметр, cp не может создавать символические ссылки в целевых копиях.
-n ,
-no-clobber
Не перезаписывать существующий файл. Если ранее было указано -i / —interactive , эта опция отменяет его. Этот параметр не может быть указан с -b / —backup , потому что резервные копии создаются только тогда, когда файл будет перезаписан.
-P ,
— без ссылки
Никогда не переходите по символическим ссылкам в источнике ; копировать символические ссылки как символические ссылки.Однако существующие символические ссылки, обнаруженные в пункте назначения, все еще могут отслеживаться.
-п То же, что и —preserve = mode, owner, timestamps .
—preserve = [ attr_list ] Сохранить указанные атрибуты, разделенные запятой. Атрибуты:
режим Сохранять биты режима файла (как установлено с помощью chmod ) и любые ACL.
собственность Сохранить владельца и группу (как установлено с chown ).Возможность сохранения этих атрибутов ограничена так же, как при использовании chown .
метки времени Сохраните время последнего доступа к файлу и его модификации ( atime и mtime , как установлено с помощью touch ), если это возможно.
ссылки Сохранить в конечных файлах любые связи между исходными файлами. С -L или -H эта опция потенциально может копировать символические ссылки как жесткие.
контекст Сохранить контекст безопасности SELinux исходных файлов или выполнить подробную диагностику.
xattr Сохраните расширенные атрибуты исходных файлов или не выполните подробную диагностику.
все Сохраните все вышеперечисленное. То же, что и указание всех вышеперечисленных атрибутов по отдельности, за исключением того, что неудачное копирование контекста или xattr не приведет к отказу от статуса выхода.
Если не указано, значение по умолчанию attr_list — «режим , владение, отметки времени ».
—no-preserve = attr_list Не сохранять указанные атрибуты.
— родители При необходимости создайте отсутствующие родительские каталоги в целевом каталоге при копировании в целевой каталог в соответствии с путем, указанным в исходном .

Например, « cp —parents dir2 / dir3 / file dir1 » создает файл назначения « dir1 / dir2 / dir3 / file », даже если dir2 и dir3 в настоящее время не существуют в каталоге dir1 .

-R ,
-r ,
— рекурсивный
Рекурсивное копирование каталогов.
—reflink = [ при ] Выполнить оптимизированное клонирование CoW («копирование при записи»), если файловая система назначения поддерживает это.Полученная копия будет использовать те же байты на диске, что и исходный файл, пока копия не будет изменена. Имейте в виду, что это означает, что если исходные байты повреждены, место назначения будет совместно использовать поврежденные данные.

Параметр when определяет, что произойдет, если копирование при записи не поддерживается файловой системой назначения. Если , когда — это , всегда (по умолчанию), копирование не выполняется. Если auto , копирование будет продолжено с использованием стандартного поведения копирования.

— пункт назначения Удалите каждый существующий файл назначения перед попыткой его открытия (в отличие от параметра —force , который удаляет адресат только после неудачной попытки открытия).
—sparse = при Управлять созданием разреженных файлов.

Разреженный файл содержит «дыры», где дыра — это последовательность нулевых байтов, которая не занимает места на физическом диске. При чтении файла дыры читаются как нули. Это может сэкономить место на диске, поскольку многие файлы содержат длинные последовательности нулей. По умолчанию cp обнаруживает разреженные файлы, а также создает разреженные файлы назначения.

Параметр when определяет, что должен делать cp , когда обнаруживается, что исходный файл является разреженным:

auto Если источник является разреженным, попытайтесь сделать место назначения разреженным.Если место назначения существует и является нестандартным файлом, не пытайтесь сделать его разреженным. Это значение по умолчанию.
всегда Для каждой достаточно длинной последовательности нулевых байтов в источнике попытайтесь проделать разреженную дыру в месте назначения, даже если входной файл не является разреженным. Это может быть полезно, если исходная файловая система не поддерживает разреженные файлы; разреженный файл может быть соответствующим образом создан в целевой файловой системе.
никогда Никогда не делайте выходной файл разреженным.Некоторые специальные файлы, такие как файл подкачки, никогда не должны быть разреженными. В этих случаях следует использовать эту опцию.
—strip-trailing-

Как копировать файлы с / на виртуальную машину Linux

Копировать файлы с SFTP

Мы рекомендуем использовать FileZilla Client для подключения к вашей виртуальной машине Linux. FileZilla поддерживает Windows, Linux и Mac. Также можно использовать другие клиенты SFTP. Например, CyberDuck, WinSCP.

В диалоговом окне «Менеджер сайтов» FileZilla создайте новый сайт и введите следующую информацию:

  • Хост : полное доменное имя вашей виртуальной машины.
  • Порт : оставьте поле пустым
  • Протокол : SFTP — протокол передачи файлов SSH
  • Тип входа : запросить пароль
  • Пользователь : Ваше имя пользователя
  • Пароль : оставьте поле пустым

После нажатия кнопки Connect появится диалоговое окно ввода пароля. В этом диалоговом окне снимите флажок Запомнить пароль, пока FileZilla не закроет флажок и введите тот же пароль, что и для входа по SSH.

Копирование файлов с SCP

Системы

Linux и macOS по умолчанию поставляются с клиентом SCP командной строки. Клиент Windows SCP доступен в MobaXterm и Git bash.

В Интернете можно найти множество подробных руководств по команде scp, вот краткое руководство по ее обычному использованию:

  # Загрузите файл yourFile.xyz в домашний каталог на виртуальной машине
$ scp yourFile.xyz [email protected]: ~ /.
 
# Загрузите папку yourFolder в домашний каталог на виртуальной машине
$ scp -r имя пользователя в папке @ cerzheprd03.its.auckland.ac.nz:~/.
  

Загрузка файлов из вашего домашнего каталога на узле входа в ваш домашний каталог на локальном компьютере аналогична процессу, показанному ниже:

  # Загрузите файл ~ / yourFile.xyz в домашний каталог на вашем компьютере
$ scp [email protected]: ~ / yourFile.xyz ~ /.
 
# Загрузите папку yourFolder в домашний каталог на вашем компьютере
$ scp -r [email protected]: ~ / yourFolder ~ /.
  
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *