- Команда cp — копирование файлов в Linux из терминала
- Синтаксис
- Примеры
- Регулярные выражения
- Копирование при помощи перенаправления вывода
- Команда Cp в Linux (Копирование файлов)
- Cp Command in Linux (Copy Files)
- В этой статье мы объясним, как использовать cp команду.
- Как использовать cp команду
- Копирование файлов с помощью команды cp
- Копирование каталогов с помощью команды cp
- Копировать несколько файлов и каталогов
- Вывод
- Как скопировать файл в Linux через терминал
- Команда для копирования «cp»
- Синтаксис и опции команды «cp»
Команда cp — копирование файлов в Linux из терминала
Задачи по копированию файлов из одного места в другое возникают у пользователей чаще всего, скопировать нужные объекты можно через менеджер файлов, в котором следует найти нужную директорию и после воспользоваться контекстным меню. Однако есть гораздо более простые способы, в этой статье речь как раз пойдет о них, точнее о копировании файлов в Линукс из консоли.
Знание о команде cp полезны, ведь файловый менеджер может некорректно работать из-за проблем с графической оболочкой. Серверные компьютеры вообще управляются только через консоль. Перемещать файлы с помощью терминала очень удобно, в этом может убедиться каждый пользователь. Скопировать файлы можно как с помощью утилиты cp, так же используя tar и find.
Синтаксис
Рассмотрим синтаксис утилиты.
cp [параметр] [что копировать] [куда купировать]
Как только команда будет активирована, отправляемый файл перенесется в место для приема, при указании на конце файла значка «/» он также будет перенесен, но с новым именем.
- —attributes-only – переместить не сам файл, а только данные пользователя и флаги доступа;
- -f —force – вместо старых данных записать новые;
- -i —interactive – спросить о необходимости переписывать старую информацию;
- -L – создать копию не ссылок-символов, а того, что находится по этим ссылкам;
- -n – оставить старые файлы на их месте;
- -P – игнорировать ссылки-символы;
- -r – скопировать данные Linux используя рекурсию;
- -s – ничего не копировать, просто создать ссылки-символы;
- -u – копировать файл, но при условии, что он уже был изменен;
- -x – проводить все действия только внутри одной системы файлов;
- -p – во время копирования сохранить все информацию о файле;
- -t – команда дает возможность считать файл для приема директорией, и отправлять в него нужный объект;
Примеры
Для первого примера, скопируем файл /root/katalog/dokument в папку, которая называется «newpapka».
cp /root/katalog/dokument /root/newpapka
Cкопируем «dokument» и «file» в каталог «newpapka».
cp /root/katalog/dokument /root/katalog/file /root/newpapka
Часто бывает так, когда копируешь несколько файлов, желательно выводить информацию, что происходит. В этом поможет опция «-v».
cp -v /root/katalog/dokument /root/katalog/file /root/newpapka
Команда cp устроена так, что все отправляемые с ее помощью файлы перезаписываются, однако программу можно заставить спрашивать пользователя о том, нужно ли перезаписывать старые данные, для этого есть специальная команда:
cp -i /root/katalog/dokument /root/newpapka
Существует альтернатива данной функции, благодаря запросу «-n» можно сказать программе, чтобы она вообще не перезаписывала файлы.
Данная возможность будет полезна при следующей ситуации: пользователю известно, что в определенном месте для копирования уже содержится тот же файл, но с устаревшей версией, а с помощью функции «-u» можно безболезненно перезаписать старые данные:
cp -u /root/katalog/dokument /root/newpapka
Для копирование папки со всем ее содержимом необходимо использовать параметр -r.
cp -r /root/katalog /root/newpapka
ВАЖНО! Как видно из скриншота, данный способ скопирует всю папку и поместит ее в новую директорию.
Если нужно только сделать копию всех файлов без папки, то опция -r не подойдет.
Можно сделать так:
cp /root/katalog/* /root/newpapka
Как видно из примера выше, команда cp работает со знаками «*» и «?», следующий запрос, займется копированием всех файлов, чье название начинается с new:
cp /root/katalog/new* /root/newpapka
Для ввода команд быстрее есть возможность применять фигурные скобки, чтобы заиметь копию файла для резерва следует ввести данную команду:
С ее помощью появится резервный файл, который имеет расширение, указанное в скобках.
Одним из неудобств функции cp является то, что она не показывает количество скопированной информации, это мешает, особенно когда приходится работать с тяжелыми файлами. Полоску прогресса можно увидеть, если использовать функцию cv.
Регулярные выражения
Для выполнения других, более сложных функций, придется использовать вместе с cp такие утилиты find и egrep.
С помощью утилиты find есть возможность использовать команды для выявления расположения файлов. Пользователь может найти данные с использованием find, а затем скопировать их, используя функция для копирования.
Вот пример, в нем проводится копирование файлов, которые содержат цифры от 1 до 5:
find /root -name 4 -exec cp <> /root/newpapka \;
ВАЖНО! Обязательно в конце команды нужно ввести «;», в противном случаи будет ошибка — exec аргумент не задан.
- /root — каталог где производить поиск.
- -name — критерии поиска.
- 4 — что искать, в данном случаи от одного до пяти.
- -exec — аргумент, который говорит, что нужно запустить команду.
- <> — подставляет имя каждого файла.
Сделать то же самое можно и не прибегая к find, можно обратиться к утилите ls, выбрать нужные файлы, используя регулярные выражения egrep, затем отправить их под контроль cp, применяя при этом xargs:
ls -1 /root | egrep ‘4’ | xargs cp -t /root/newpapka
Данный способ не отличается особым удобством, однако использовать его можно. При работе с ним начнется копирование файлов из основной директории, чьи имена содержат лишь цифры от 1 до 5.
Копирование при помощи перенаправления вывода
В операционной системе Linux есть специальный символ «>», который означает перенаправление вывода.
Благодаря этой возможности можно не только переносить файлы, но и работать с их составляющими. Есть возможность соединить несколько файлов или наоборот разрезать их.
Используя cat можно выводить на экран основные данные файла, а затем, используя bash, пользователь сможет переносить составляющие файла из одного места в другое.
cat file1 > newfile
Одной из особенностью Linux является то, что в нем одно и то же действие можно выполнять, используя несколько различных команд.
Скопировать данные можно не только с помощью cp. Когда важные системные файлы отправляются в другое место или происходит создание резервных копий данных, нужно, чтобы такие вещи как атрибуты, владельцы данных, ссылки-символы были сохранены без каких-либо изменений.
С помощью cp так делать можно, однако на помощь придется позвать утилиту tar, чтобы она начала работу следует написать в cp «-p».
В качестве примера будет приведен туннель – одна часть запроса архивирует файл и отправляет его, другая – разархивирует и отправляет в нужное место:
tar cf — /lfc | ( cd /epl/lfc && tar xvf — )
С помощью данной команды все из папки /lfc отправляется в папку /epl/lfc. Таким способом можно скопировать любую информацию с компьютера, даже если это операционная система.
Теперь почти каждый пользователь знает, как копировать файлы в ОС. С помощью терминала делать это можно быстро, главное – запомнить все нужные команды.
Источник
Команда Cp в Linux (Копирование файлов)
Cp Command in Linux (Copy Files)
В этой статье мы объясним, как использовать cp команду.
При работе в системах Linux и Unix копирование файлов и каталогов является одной из самых распространенных задач, которые вы выполняете ежедневно.
cp утилита командной строки для копирования файлов и каталогов в системах Unix и Linux
Как использовать cp команду
Общий синтаксис cp команды выглядит следующим образом:
SOURCE Может содержать один или несколько файлов или каталогов в качестве аргументов, а DESTINATION аргумент может быть один файл или каталог.
- Когда SOURCE и DESTINATION аргументы оба файла, то cp команда копирует первый файл на второй. Если файл не существует, команда создает его.
- Если SOURCE аргумент имеет несколько файлов или каталогов, DESTINATION аргумент должен быть каталогом. В этой ситуации SOURCE файлы и каталоги перемещаются в DESTINATION каталог.
- Когда SOURCE и DESTINATION аргументы являются справочники, cp команда копирует первый каталог на второй.
Для копирования файлов и каталогов у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог. В противном случае отображается ошибка «Отказано в доступе».
Копирование файлов с помощью команды cp
Самый простой сценарий использования cp — скопировать файл в текущем рабочем каталоге . Например, чтобы скопировать файл с именем , file.txt чтобы file_backup.txt вы ранить выполнить следующую команду:
Чтобы скопировать файл в другой каталог, укажите абсолютный или относительный путь к каталогу назначения.
Если в качестве места назначения указано только имя каталога, то имя скопированного файла совпадает с именем исходного файла.
В следующем примере мы копируем файл file.txt в /backup каталог:
Если вы хотите скопировать файл под другим именем, вам нужно указать желаемое имя файла. Команда ниже скопирует файл в указанный каталог как new_file.txt .
По умолчанию, если целевой файл существует, он перезаписывается. -n Опция указывает , cp чтобы не перезаписать существующий файл.
Чтобы заставить cp запросить подтверждение, используйте -i опцию.
Если вы хотите скопировать файл только в том случае, если он новее, чем целевой, используйте -u параметр:
При копировании файла новый файл принадлежит пользователю, выполняющему команду. Используйте -p опцию, чтобы сохранить режим файла, владельца и метки времени :
Еще одна полезная опция -v , которая указывает cp печатать подробный вывод:
Копирование каталогов с помощью команды cp
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте -R или -r .
В следующем примере мы копируем каталог Pictures в Pictures_backup :
Приведенная выше команда создает каталог назначения и рекурсивно копирует все файлы и подкаталоги из источника в каталог назначения.
Если целевой каталог уже существует, сам исходный каталог и все его содержимое копируются в целевой
каталог. Чтобы скопировать только файлы и подкаталоги, но не целевой каталог, используйте -T параметр:
Другой способ скопировать только содержимое каталога, но не сам каталог, — использовать подстановочный знак ( * ). Недостаток следующей команды в том, что она не копирует скрытые файлы и каталоги (те, которые начинаются с точки . ):
Все параметры, которые мы использовали в предыдущем разделе при копировании файлов, также можно использовать при копировании каталогов. Основное отличие заключается в том, что при копировании каталогов. вам всегда нужно использовать -R опцию.
Копировать несколько файлов и каталогов
Чтобы скопировать несколько файлов и каталогов одновременно, укажите их имена и используйте целевой каталог в качестве последнего аргумента:
При копировании нескольких файлов местом назначения должен быть каталог.
Вывод
Копирование файлов и каталогов с помощью cp команды является простой задачей. Для получения информации обо всех доступных cp опциях введите man cp свой терминал.
Для копирования файлов по сети, использовать rsync и scp утилиту.
Источник
Как скопировать файл в Linux через терминал
При работе с Linux через терминал не редко приходится создавать копии файлов или копировать файлы из одной папки в другую. Например, это могут быть файлы конфигураций, которые используются для настройки программ, или просто документы пользователя. В данной инструкции мы расскажем, как скопировать файл в Linux через терминал и какие команды для этого потребуются. Статья будет актуальной для любого дистрибутива Linux, например, Ubuntu Linux или Debian
Команда для копирования «cp»
Для копирования файлов в Linux через терминал используется команда « cp » (от англ. «copy»). Команда « cp » представляет собой утилиту командной строки для копирования файлов и каталогов. Она поддерживает перемещение одного или нескольких файлов или папок с параметрами для создания резервных копий и сохранения атрибутов.
В общем случае, для того чтобы скопировать файл в Linux через терминал достаточно ввести команду « cp » и передать ей имя исходного и нового файла. Например, для того чтобы скопировать « file.txt » в новый « newfile.txt » нужно выполнить следующую команду:
Обратите внимание , по умолчанию команда « cp » всегда будет перезаписывать уже имеющиеся файлы копируемыми, но это поведение можно изменить с помощью опций, которые мы рассмотрим во второй части статьи.
Таким же образом выполняется копирование файла в другую папку. Вводим команду « cp », указываем путь к файлу и затем каталог, в который его нужно скопировать. Например, для того чтобы скопировать « file.txt » в каталог « folder » нужно выполнить вот такую команду:
Естественно, если это необходимо, вы можете вводить полные пути к файлам и папкам, которые копируете командой « cp ». Например, копирование может выглядеть так:
Еще один пример копирования с указанием полного пути:
При необходимости можно скопировать сразу несколько файлов. В этом случае сначала нужно перечислить файлы, а потом указать папку, в которую их нужно скопировать. Например, для того чтобы скопировать « file.txt » и « newfile.txt » в каталог « folder » нужно выполнить следующее:
Аналогичное действие можно выполнить и с помощью маски. Например, для того чтобы скопировать все txt -документы в определенную директорию можно выполнить вот такую команду:
При копировании каталогов нужно добавлять параметр « -R », так как без этого « cp » будет выдавать ошибку. Поэтому, для копирования каталогов нужно ввести команду « cp -R » и указать исходный и новый каталог. Например, для того чтобы скопировать каталог « folder » в « newfolder » вам нужно выполнить вот такую команду:
Как и в случае с файлами, папки можно копировать сразу по несколько штук. Для этого нужно ввести «cp», перечислить копируемые папки и указать каталог назначения. Например, для того чтобы скопировать папки « folder » и « folder2 » в « newbigfolder » нужно выполнить следующее:
Синтаксис и опции команды «cp»
Команда « cp » имеет множество опций, с помощью которых можно контролировать буквально все аспекты копирования файлов. Синтаксис команды выглядит следующим образом:
Самых опций у команды « cp » очень много, поэтому мы рассмотрим только самые простые и часто используемые. С остальными опциями вы сможете ознакомиться отдельно, выполнив в терминале Linux команду « man cp ».
Как уже было сказано, для выполнения команды копирования в терминале Linux сначала нужно ввести « cp », потом используемые опции, потом источник, и в конце место назначения. При этом опции из одной буквы можно соединять, например, вместо « -r -v » можно написать просто « -rv ».
Ниже мы рассмотрим несколько примеров копирования с опциями.
- cp -r folder/ newfolder/
Рекурсивное копирование каталогов. - cp -rv folder/ newfolder/
Рекурсивное копирование с выводом подробной информации. - cp -ri folder/ newfolder/
Рекурсивное копирование в интерактивном режиме с запросом на перезапись. - cp -rn folder/ newfolder/
Рекурсивное копирование без перезаписи. - cp -ru folder/ newfolder/
Рекурсивное копирование только новых файлов.
Источник