Копирование файлов в Linux
Копирование файлов — одна из задач, наиболее часто возникающих перед пользователями персонального компьютера. Конечно, можно открыть файловый менеджер, войти в нужную папку и скопировать файл с помощью контекстного меню — тут не о чем говорить. Но в этой статье я хотел бы рассмотреть копирование файлов в Linux с помощью терминала.
Не всегда есть доступ к файловому менеджеру: из-за различных поломок графическая оболочка на домашнем компьютере может быть недоступна, а на серверах используется только консольный интерфейс. К тому же копирование файлов Ubuntu через терминал намного эффективнее, и вы сами в этом убедитесь. Сегодня мы рассмотрим не только обычное копирование командой cp Linux, но и не совсем обычное: с помощью tar и find.
Содержание статьи:
Утилита копирования файлов cp
Название утилиты cp — это сокращение от Copy, что означает копировать. Утилита позволяет полностью копировать файлы и директории.
Синтаксис и опции
Общий синтаксис cp выглядит вот так:
$ cp опции файл-источник файл-приемник
Или:
$ cp опции файл-источник директория-приемник/
После выполнения команды файл-источник будет полностью перенесен в файл-приемник. Если в конце указан слэш, файл будет записан в заданную директорию с оригинальным именем.
Утилита имеет несколько интересных опций, которые могут сильно помочь при нестандартных задачах копирования, поэтому давайте их рассмотрим:
- —attributes-only — не копировать содержимое файла, а только флаги доступа и владельца;
- -f, —force — перезаписывать существующие файлы;
- -i, —interactive — спрашивать, нужно ли перезаписывать существующие файлы;
- -L — копировать не символические ссылки, а то, на что они указывают;
- -n — не перезаписывать существующие файлы;
- -P — не следовать символическим ссылкам;
- -r — копировать папку Linux рекурсивно;
- -s — не выполнять копирование файлов в Linux, а создавать символические ссылки;
- -u — скопировать файл, только если он был изменён;
- -x — не выходить за пределы этой файловой системы;
- -p — сохранять владельца, временные метки и флаги доступа при копировании;
- -t — считать файл-приемник директорией и копировать файл-источник в эту директорию.
Примеры копирования файлов в linux
Теперь, когда вы знаете основные опции, можно перейти к практике. Например, мы хотим скопировать некую картинку из домашней папки в подкаталог pictures:
cp ~/pic.png ~/pictures/
Или можем явно указать имя новой картинки:
cp ~/pic.png ~/pictures/wallpaper.png
Копирование папок осуществляется с помощью ключа -r:
cp -R ~/папка ~/Документы/
После выполнения этой команды копирования ~/папка будет скопирована в папку ~/Документы. Главное, не забывайте поставить слэш в конце выражения или использовать опцию -t. Иначе папка ~/документы будет перезаписана.
По умолчанию команда cp Linux перезаписывает существующие файлы или папки, но можно заставить утилиту спрашивать, нужно ли перезаписывать каждый файл, если вы не уверены в правильности составления команды:
cp -i ~/test ~/Documents/test
Есть и противоположная опция -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 в целом. Как видите, в терминале это выполняется намного быстрее и эффективнее, чем с помощью графического интерфейса, если помнить нужные команды. Если у вас остались вопросы, спрашивайте в комментариях!
Как копировать файлы в Linux
Копирование файлов, вероятно, является частью повседневной жизни любого, кто использует Linux. Вы часто хотите скопировать файл в разные каталоги. Самый простой способ копирования файлов в Linux — использование командной строки. Для тех, у кого есть проблемы с командной строкой, вы можете использовать графический интерфейс, но рекомендуется придерживаться командной строки для большей гибкости. Тем не менее, в этом руководстве будут обсуждаться различные способы копирования файлов в Linux.
Копирование файлов в LinuxВы можете использовать графический интерфейс или командную строку для копирования файлов в Linux.
Для тех, кому не нравится командная строка, вы можете просто щелкнуть правой кнопкой мыши файл, который хотите скопировать, и выбрать параметр копирования. Затем перейдите туда, куда вы хотите скопировать файл, щелкните правой кнопкой мыши и выберите команду вставки.
В качестве альтернативы вы можете использовать «копировать в», который открывает файловую систему, чтобы вы могли перейти к целевому каталогу.
Способ 2: способ командной строкиКопировать файлы в Linux лучше всего при использовании командной строки. Кроме того, Linux предлагает команду cp, которую вы можете использовать для копирования файлов из одного каталога в другой, указав его путь.
Существуют различные параметры, которые вы можете использовать с командой cp. Ниже приведена краткая шпаргалка:
- -v: добавлено, чтобы сделать команду cp подробной.
- -i: добавлено, чтобы сделать команду cp интерактивной, особенно при копировании файлов в каталог, содержащий файлы с тем же именем.
- -p: добавлено для копирования файла и его атрибутов, таких как права доступа и даты изменения.
- -b: добавлено для создания резервной копии файла, копируемого в папку назначения, но с другим расширением.
- -r: указывает рекурсивность и используется, когда вы хотите скопировать все файлы в каталоге.
Давайте посмотрим, как команда cp используется для копирования файлов.
Копирование файлов в тот же каталогПредположим, вы хотите скопировать файлы в другой каталог в том же месте. В этом случае вам нужно только указать имя файла или шаблон и целевой каталог. В этом примере мы будем использовать файлы на следующем изображении:
В данном образе, если бы нам нужно было скопировать bash2.sh в папку dir1, команда была бы такой:
$ cp -v bash2.sh dir1
Обратите внимание, что мы добавили параметр -v для подробных сведений.
Кроме того, если нам нужно скопировать более одного файла, вы должны разделить имена файлов пробелом и перечислить все файлы, которые вы хотите скопировать.
$ cp -v file1 file2 file3 ... [целевой каталог]
Если вам нужно скопировать файлы с одинаковым расширением, вы можете использовать подстановочный знак для соответствия заданному шаблону. Например, вы можете использовать следующую команду для копирования всех текстовых файлов. Все файлы, соответствующие шаблону, копируются в указанный каталог.
$ cp -v *.txt [целевой каталог]
Предположим, вы хотите скопировать файлы в подкаталог текущего каталога; необходимо указать путь. Например, если в каталоге dir1 есть подкаталог с именем test и вы хотите скопировать в него файл, мы можем использовать следующую команду:
$ cp -v filename ./dir/subdir
Если вы скопируете файлы в каталог с таким же именем файла, вы в конечном итоге перезапишете существующие файлы, если не добавите параметр -i для интерактивности.
Давайте попробуем повторить команду из предыдущего примера, чтобы увидеть, какую ошибку она вызывает, и как вы можете перезаписать существующие файлы или нет.
На предыдущем изображении, если вы хотите перезаписать файлы с одинаковыми именами в целевом каталоге, вы должны ввести y в терминал, а затем нажать клавишу ввода. Если вы не хотите перезаписывать, нажмите n.
Если вы хотите создать копию файла в том же каталоге, вы должны указать целевой файл и имя файла реплики. Например, давайте создадим копию нашего файла file1.txt с именем replica.txt и сохраним его атрибуты. В этом случае команда будет такой, как показано ниже:
$ cp -vp file1.txt replica.txt
Чтобы создать резервную копию копируемого файла, добавьте флаг -b и обратите внимание на новый файл резервной копии, созданный с другим расширением. Давайте создадим резервную копию bash2.sh в нашей папке назначения. Теперь у нас есть новая резервная копия с именем bash2.sh-
Если вы хотите скопировать каталог и все файлы, добавьте параметр -r и укажите путь. Например, на следующем изображении мы скопировали папку linuxhint и все ее содержимое в каталог dir1.
Копирование файлов в разные каталогиЕсли вам необходимо скопировать файлы, расположенные в разных каталогах, используйте следующий синтаксис:
$ cp [параметры] [путь-источник] [путь-назначения]
Например, команда показана ниже, если нам нужно скопировать файл из каталога /Pictures в подкаталог linuxhint в каталоге dir1.
Хитрость заключается в том, чтобы указать точный путь к исходному файлу и место назначения.
ВыводМы рассмотрели различные варианты копирования файлов в Linux. Описанные команды требуют лишь небольшой практики, и вскоре вы научитесь копировать файлы в Linux с помощью командной строки.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка / 5. Количество оценок:
Оценок пока нет. Поставьте оценку первым.
Статьи по теме:
Как копировать файлы и каталоги в Linux | Linode
Копирование файла — одна из самых распространенных задач Linux. Ubuntu и другие дистрибутивы Linux используют команду cp
для копирования одного или нескольких файлов, а также для копирования целых каталогов. В этом руководстве объясняется, как использовать команду cp
для копирования файлов в Linux. В нем также перечислены различные варианты этой команды и описаны различные параметры команды cp
.
Введение в cp
9Команда 0003 cp используется для копирования одного или нескольких файлов в системе Linux в новое место. Она аналогична команде mv
, за исключением того, что она не перемещает и не удаляет исходный файл, который остается на месте. Как и большинство команд Linux, cp
запускается с помощью командной строки системного терминала.
Команда cp
позволяет пользователям копировать файл либо в тот же каталог, либо в другое место. Также можно дать копии имя, отличное от имени исходного файла. 9Параметр 0003 -r позволяет команде cp
работать рекурсивно и копировать каталог вместе с любыми файлами и подкаталогами, которые он содержит. cp
имеет ряд параметров, позволяющих пользователям запускать его в интерактивном режиме, использовать подробный режим или сохранять атрибуты файла оригинала.
Пользователи должны иметь привилегии sudo
для копирования защищенных файлов. В противном случае
sudo
не требуется.
Прежде чем начать
-
Если вы еще этого не сделали, создайте учетную запись Linode и вычислительный экземпляр. См. наши руководства «Начало работы с Linode» и «Создание вычислительного экземпляра».
-
Следуйте нашему руководству по настройке и защите вычислительного экземпляра, чтобы обновить свою систему. Вы также можете установить часовой пояс, настроить имя хоста, создать ограниченную учетную запись пользователя и усилить доступ по SSH.
Это руководство написано для пользователя без полномочий root. Команды, требующие повышенных привилегий, имеют префикс sudo
. Если вы не знакомы с командой sudo
, см. руководство «Пользователи и группы».
Как использовать команду cp для копирования файлов и каталогов в Linux
Команда cp
работает одинаково в большинстве дистрибутивов Linux. Команда работает в четырех основных режимах.
- Копирует файл в тот же каталог. Новый файл должен иметь другое имя.
- Копирует файл в другой каталог. Можно переименовать файл или сохранить старое имя.
- Скопируйте несколько файлов в другой целевой каталог.
- Рекурсивное копирование содержимого каталога, включая подкаталоги, в другой целевой каталог.
При использовании cp
следует учитывать ряд проблем. Например, cp
не отображает предупреждение при перезаписи существующего файла. Такая ситуация возникает при копировании файла в новый каталог, уже содержащий файл с таким именем. Эта проблема чаще возникает при копировании нескольких файлов. Чтобы избежать этой проблемы, пользователи могут использовать интерактивный режим , чтобы заставить Linux запрашивать подтверждение перед перезаписью файла.
cp
часто используется вместе с командой ls
. ls
перечисляет содержимое текущего каталога. Это удобно для подтверждения точного имени и местоположения исходных файлов и каталогов.
Некоторые из наиболее важных параметров команды cp
включают следующие:
-
-f
: принудительное копирование при любых обстоятельствах. -
-i
: Запускаетcp
в интерактивном режиме. В этом режиме Linux запрашивает подтверждение перед перезаписью любых существующих файлов или каталогов. Без этой опции Linux не отображает никаких предупреждений. -
-p
: Сохраняет атрибуты исходного файла в копии. Атрибуты файла включают метки даты создания и последнего изменения файла, идентификатор пользователя, IP-адрес группы и права доступа к файлу. -
-R
: Рекурсивное копирование файлов. Все файлы и подкаталоги в указанном исходном каталоге копируются в место назначения. -
-u
: Перезаписывает файл назначения, только если исходный файл новее, чем файл назначения. -v
: Запускаетcp
в подробном режиме . Этот режим предоставляет дополнительную информацию о процессе копирования. Это полезно для отслеживания прогресса при копировании большого количества файлов.
Опции -H
, -L
и -P
указывают, как команда cp
должна обрабатывать символические ссылки. См. справочную страницу cp для полного описания cp
и символических ссылок. Параметры для cp
различаются в зависимости от дистрибутива Linux. Список для Ubuntu 22.04 LTS доступен в документации Ubuntu cp.
Как скопировать файл в Linux
Одним из распространенных способов использования cp
является создание второй копии исходного файла в том же каталоге. Укажите другое имя для копии, чтобы отличить ее от оригинала. Распространенным соглашением является добавление дополнительного расширения, такого как .bak
или .
, к существующему имени файла. Например, стандартное имя для резервной копии cp
archive.txt
— archive.txt.bak
.
Команда cp
работает в контексте текущего рабочего каталога. Однако файлы могут быть указаны как с абсолютным, так и с относительным путем. Вот основные cp
команда для копирования файла в том же каталоге.
cp [options] исходный файл targetfile
В следующем примере показано, как создать резервную копию clock.txt
с именем clock.txt.bak
.
cp clock.txt clock.txt.bak
Чтобы подтвердить операцию копирования, используйте ls
для вывода списка файлов в каталоге. Перечислены как исходный файл, так и копия.
-rw-rw-r-- 1 тестовый тест 2208 18 июля 06:00 clock.txt -rw-rw-r-- 1 test test 2208 20 июля 08:11 clock.txt.bak
Одну и ту же команду можно выполнить, используя абсолютные пути для обоих имен файлов.
cp ~/clock.txt ~/clock.txt.bak
Чтобы скопировать защищенный файл, которым владеет учетная запись root
, используйте sudo
.
Будьте очень осторожны при копировании любых файлов, принадлежащих пользователю root, особенно в системных каталогах
/
.
CD/и т.д. sudo cp bash.bashrc bash.bashrc.bak ls -l bash.*
-rw-r--r-- 1 root root 2319 6 января 2022 г. bash.bashrc -rw-r--r-- 1 корень корень 231920 июля 08:15 bash.bashrc.bak
Для защиты от случайной перезаписи используйте интерактивную опцию -i
. Система Linux запрашивает подтверждение перед перезаписью любых существующих файлов.
cp clock.txt clock.txt.bak -i
cp: перезаписать «clock.txt.bak»?
Используйте параметр -p
, чтобы сохранить в копии атрибуты исходного файла. Например, Ubuntu присваивает дубликату ту же отметку даты, что и оригиналу.
cp clock.txt clock.txt.bak -p
-rw-rw-r-- 1 тестовый тест 2208 18 июля 06:00 clock.txt -rw-rw-r-- 1 test test 2208 18 июля 06:00 clock.txt.bak
Команда -v
выводит каждую операцию копирования на стандартный вывод. Это может быть удобно для отслеживания операций, копирующих сотни или тысячи файлов.
cp -v clock.txt clock.txt.cp
'clock.txt' -> 'clock.txt.cp'
Если вы случайно сделали ненужную копию неправильного файла, удалите копию с помощью rm Команда
.
sudo rm bash.bashrc.bak
Как скопировать файл в другой каталог в Linux
Команда cp
может скопировать файл в совершенно другой каталог назначения в той же системе Linux. Копия может сохранить то же имя, что и оригинал, но также можно указать новое имя для файла. Целевой каталог должен уже существовать перед копированием каких-либо файлов. Путь к целевому каталогу может быть как относительным, так и абсолютным.
i
. Вот шаблон для копирования файла в каталог в Linux.
cp sourcefile target_directory_path
Чтобы дать копии новое имя, добавьте это имя к пути целевого каталога.
cp sourcefile target_directory_path/targetfile
В этом примере создается новая копия clock.txt
в архиве 9каталог 0004. В этом примере каталог
архива уже существует.
cp clock.txt ~/archive
Перейдите в новый каталог, чтобы подтвердить успешное копирование.
cd архив ls -l
-rw-rw-r-- 1 test test 2208 20 июля 09:08 clock.txt
Чтобы дать копии новое имя, добавьте новое имя в конец пути к каталогу.
clock.txt.bak
. cp clock.txt ~/archive/clock.txt.bak
Как копировать несколько файлов в Linux
cp
позволяет пользователям копировать несколько файлов одновременно, но только в другой каталог. Вот шаблон для использования cp
в этом контексте:
cp исходный файл1 исходный файл2 целевой_каталог_путь
В этом примере два файла копируются в архивный каталог
.
cp clock.txt архив system.txt
Команда cp
обрабатывает символ *
как подстановочный знак. Сам по себе подстановочный знак обозначает все файлы. Команда cp * targetdirectory
копирует все файлы в текущем каталоге в targetdirectory
. Однако он не копирует никакие каталоги и не выполняет рекурсивное копирование.
При использовании в составе строки символ *
соответствует любому количеству любых символов. Фильтр
*.txt
соответствует всем исходным файлам, заканчивающимся расширением .txt
. В этом примере все файлы .exe
копируются в каталог архива .
cp *.exe архив
Измените контекст на каталог архива , чтобы подтвердить, что оба файла
.exe
и только эти файлы были скопированы.
cd архив ls
cleanup.exe mk_backup.exe
Как скопировать каталог в Linux
Помимо копирования файлов, Linux также может копировать каталоги. Параметр -R
используется для рекурсивного копирования каталога и всех его подкаталогов и файлов. Команда Linux для копирования каталога следует этой структуре.
cp -R исходный_каталог целевой_каталог
Чтобы скопировать каталог архив
вместе со всеми его файлами и подкаталогами в архивная_база
, используйте эту команду.
cp -R archive archive_bkup
Измените контекст на каталог archive_bkup/archive
и подтвердите, что все файлы и подкаталоги архива
скопированы.
cd archive_bkup/архив ls -l
-rw-rw-r-- 1 тестовый тест 0 20 июля 11:10 cleanup.exe -rw-rw-r-- 1 тест тест 0 июл 20 11:10 mk_backup.exe drwxrwxr-x 2 тестовый тест 4096 июля 20 11:10 записей
Заключение
Команда cp
используется для копирования файлов в системах Linux. Она работает аналогично директиве mv
, но оставляет исходный файл без изменений и на месте. Чтобы скопировать файл в тот же каталог в Linux, используйте cp
с именем исходного файла и именем копии. Команду cp
также можно использовать для копирования файла в другой каталог, для копирования нескольких файлов или для рекурсивного копирования целых каталогов. Для получения более подробной документации о том, как копировать файлы с помощью Linux команда cp
, см. справочную страницу cp.
Вы можете обратиться к следующим ресурсам для получения дополнительной информации
по теме. Хотя они предоставляются в надежде, что они будут
полезно, обратите внимание, что мы не можем ручаться за точность или своевременность
материалы внешнего размещения.
- справочная страница для команды cp
- Ubuntu 22.04 документация по команде cp
Как копировать файлы в Linux
Копирование файлов, вероятно, является частью повседневной жизни для всех, кто использует Linux. Вы часто хотите скопировать файл в разные каталоги. Самый простой способ копирования файлов в Linux — использование командной строки. Для тех, у кого есть проблемы с командной строкой, вы можете использовать графический интерфейс, но рекомендуется придерживаться командной строки для большей гибкости. Тем не менее, в этом руководстве будут обсуждаться различные способы копирования файлов в Linux.
Копирование файлов в Linux
Для копирования файлов в Linux можно использовать графический интерфейс или командную строку.
Метод 1: Графический способ
Для тех, кому не нравится командная строка, можно просто щелкнуть правой кнопкой мыши файл, который нужно скопировать, и выбрать параметр копировать . Затем перейдите туда, куда вы хотите скопировать файл, щелкните правой кнопкой мыши и выберите команду вставки.
В качестве альтернативы вы можете использовать « скопировать в» , который открывает файловую систему для перехода к целевому каталогу.
Метод 2: Командная строка
Копировать файлы в Linux лучше всего при использовании командной строки. Кроме того, Linux предлагает команду cp , которую вы можете использовать для копирования файлов из одного каталога в другой, указав его путь.
Существуют различные параметры, которые можно использовать с командой cp . Ниже приведена краткая шпаргалка:
- -v: Добавлено, чтобы сделать команду cp подробной.
- -i: Добавлено, чтобы сделать команду cp интерактивной, особенно при копировании файлов в каталог, содержащий файлы с тем же именем.
- -p: Добавлено копирование файла и его атрибутов, таких как права доступа и даты изменения.
- -b: Добавлено для создания резервной копии файла, копируемого в папку назначения, но с другим расширением.
- -r: Указывает рекурсивность и используется, когда вы хотите скопировать все файлы в каталоге.
Давайте посмотрим, как команда cp используется для копирования файлов.
Копирование файлов в тот же каталог
Предположим, вы хотите скопировать файлы в другой каталог в том же месте. В этом случае вам нужно только указать имя файла или шаблон и целевой каталог. Для этого примера мы будем использовать файлы на следующем изображении:
В данном образе, если бы нам нужно было скопировать bash2.sh в папку dir1, команда была бы:
$ cp -v bash2.sh dir1
параметр -v для подробных сведений.
Также, если нам нужно скопировать более одного файла, вы должны разделить имена файлов пробелом и перечислить все файлы, которые вы хотите скопировать.
$ cp -v файл1 файл2 файл3 ... [целевой каталог]
Если вам нужно скопировать файлы с тем же расширением , вы можете использовать подстановочный знак для соответствия заданному шаблону. Например, вы можете использовать следующую команду для копирования всех текстовых файлов. Все файлы, соответствующие шаблону, копируются в указанный каталог.
$ cp -v *.txt [целевой каталог]
Предположим, вы хотите скопировать файлы в подкаталог текущего каталога; необходимо указать путь. Например, если dir1 имеет подкаталог с именем test , и вы хотите скопировать в него файл, мы можем использовать следующую команду:
$ cp -v имя файла ./dir/subdir
Если вы скопируете файлы в каталог, который содержит такое же имя файла, вы в конечном итоге перезапишете существующие файлы, если не добавите параметр -i для интерактивности.
Давайте попробуем повторить команду из предыдущего примера, чтобы увидеть, какую ошибку она вызывает, и как вы можете перезаписать существующие файлы или нет.
На предыдущем изображении, если вы хотите перезаписать файлы с одинаковыми именами в целевом каталоге, вы должны ввести y в терминал, а затем нажать клавишу ввода. Если вы не хотите перезаписывать, нажмите n.
Если вы хотите создать копию файла в том же каталоге , вы должны указать целевой файл и имя файла реплики. Например, давайте создадим копию нашего файла file1.txt с именем replica.txt, и сохраним его атрибуты. В этом случае команда будет выглядеть следующим образом:
$ cp -vp file1.txt replica.txt
Чтобы создать резервную копию копируемого файла, добавьте -b флаг и обратите внимание на новый файл резервной копии, созданный с другим расширением.