Как скопировать папку в ubuntu
Перейти к содержимому

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

  • автор:

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


Next: Перемещение файлов и каталогов Up: Работа с файлами Previous: Просмотр каталогов Contents Index

Для копирования файлов используйте команду cp («copy»). Она принимает два аргумента: исходный файл, который существует и должен быть скопирован, и целевой файл, который определяет имя файла-копии. cp создает идентичную копию файла, присваивая ей указанное имя целевого файла. Если файл с таким именем уже существует, cp перезаписывает его. Она не изменяет исходный файл.

Чтобы скопировать файл `my-copy’ в файл `neighbor-copy’, наберите:

$ cp my-copy neighbor-copy [Enter]

Эта команда создает новый файл с именем `neighbor-copy’, который является идентичным файлу `my-copy’ во всех отношениях, кроме имени файла, имени владельца, группы и времени модификации — новый файл имеет время модификации, указывающее момент его копирования. Файл `my-copy’ не изменяется.

Чтобы сохранить все атрибуты оригинального файла, включая его время модификации, имя владельца, группу и права доступа, используйте ключ `-p’ («preserve»)(сохранить).

Чтобы скопировать файл `my-copy’ в файл `neighbor-copy’, сохранив все атрибуты исходного файла в копии, наберите:

$ cp -p my-copy neighbor-copy [Enter]

Эта команда копирует файл `my-copy’ в новый файл `neighbor-copy’, полностью идентичный исходному по всем аспектам, кроме имени файла.

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

Чтобы скопировать каталог `public_html’ вместе со всеми его файлами и подкаталогами, в новый каталог `private_html’, введите:

$ cp -R public_html private_html [Enter]

Опция `-R’ не копирует файлы, являющиеся символической ссылкой, и не сохраняет оригинальные права доступа к файлам. Чтобы скопировать каталог рекурсивно, включая все ссылки и учитывая все права доступа, используйте опцию `-a’ («archive»). Это полезно для резервного копирования больших по объему деревьев каталогов.

Чтобы сделать резервную копию дерева каталогов `public_html’ в каталог `private_html’, введите:

$ cp -a public_html private_html [Enter]

Alex Otwagin 2002-12-16

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

При работе с Linux через терминал не редко приходится создавать копии файлов или копировать файлы из одной папки в другую. Например, это могут быть файлы конфигураций, которые используются для настройки программ, или просто документы пользователя. В данной инструкции мы расскажем, как скопировать файл в Linux через терминал и какие команды для этого потребуются. Статья будет актуальной для любого дистрибутива Linux, например, Ubuntu Linux или Debian

Команда для копирования «cp»

Для копирования файлов в Linux через терминал используется команда « cp » (от англ. «copy»). Команда « cp » представляет собой утилиту командной строки для копирования файлов и каталогов. Она поддерживает перемещение одного или нескольких файлов или папок с параметрами для создания резервных копий и сохранения атрибутов.

В общем случае, для того чтобы скопировать файл в Linux через терминал достаточно ввести команду « cp » и передать ей имя исходного и нового файла. Например, для того чтобы скопировать « file.txt » в новый « newfile.txt » нужно выполнить следующую команду:

cp file.txt newfile.txt

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

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

Таким же образом выполняется копирование файла в другую папку. Вводим команду « cp », указываем путь к файлу и затем каталог, в который его нужно скопировать. Например, для того чтобы скопировать « file.txt » в каталог « folder » нужно выполнить вот такую команду:

cp file.txt folder/

копирование файла в папку

Естественно, если это необходимо, вы можете вводить полные пути к файлам и папкам, которые копируете командой « cp ». Например, копирование может выглядеть так:

cp ~/temp/newfile.txt ~/temp/folder/

копирование с указанием полного пути

Еще один пример копирования с указанием полного пути:

копирование с указанием полного пути

При необходимости можно скопировать сразу несколько файлов. В этом случае сначала нужно перечислить файлы, а потом указать папку, в которую их нужно скопировать. Например, для того чтобы скопировать « file.txt » и « newfile.txt » в каталог « folder » нужно выполнить следующее:

cp file.txt newfile.txt folder/

копирование нескольких файлов в папку

Аналогичное действие можно выполнить и с помощью маски. Например, для того чтобы скопировать все txt -документы в определенную директорию можно выполнить вот такую команду:

cp *.txt folder/

копирование файлов по маске

При копировании каталогов нужно добавлять параметр « -R », так как без этого « cp » будет выдавать ошибку. Поэтому, для копирования каталогов нужно ввести команду « cp -R » и указать исходный и новый каталог. Например, для того чтобы скопировать каталог « folder » в « newfolder » вам нужно выполнить вот такую команду:

cp -R folder/ newfolder/

копирование папок

Как и в случае с файлами, папки можно копировать сразу по несколько штук. Для этого нужно ввести «cp», перечислить копируемые папки и указать каталог назначения. Например, для того чтобы скопировать папки « folder » и « folder2 » в « newbigfolder » нужно выполнить следующее:

cp -R folder/ folder2/ newbigfolder/

копирование нескольких папок

Синтаксис и опции команды «cp»

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

cp [опции] источник приемник

Самых опций у команды « cp » очень много, поэтому мы рассмотрим только самые простые и часто используемые. С остальными опциями вы сможете ознакомиться отдельно, выполнив в терминале Linux команду « man cp ».

-R , -r , --recursive Рекурсивное копирование каталогов. -b Создание резервной копии для всех файлов, которые могли быть перезаписаны или удалены при копировании. -d Копирование символических ссылок, а не файлов, на которые они ссылаются. -L Копировать файлы, а не символические ссылки. -l , --link Создание жестких ссылок, а не их копирование. -P, --no-dereference Не переходить по символическим ссылкам. -f, --force Если существующий файл назначения не может быть открыт, удалите его и повторите попытку. -i, --interactive Запрос перед перезаписью файлов. -n, --no-clobber Не перезаписывать файлы. -s, --symbolic-link Создавать символические ссылки вместо копирования файлов. -t, --target-directory=directory Обрабатывать место назначения как директорию. -T, --no-target-directory Обрабатывать место назначения как директорию. -u , --update Копировать только если исходный файл новее. -v , --verbose Вывод подробной информации.

Как уже было сказано, для выполнения команды копирования в терминале 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/
    Рекурсивное копирование только новых файлов.
  • Как удалить папку в Linux через терминал (консоль)
  • Как открыть файл в терминале Linux
  • Как создать файл в Linux через терминал
  • Как удалить файл в Linux через терминал
  • Как подключиться по SSH из Windows 10

Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.

Остались вопросы?

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

Копирование файлов при помощи команды cp

Команда cp в командной строке используется для копирования файлов и папок. cp является одной из основных команд в большинстве операционных систем, таких как Linux, macOS и Unix.

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

Команда cp

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

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

Некоторые распространенные опции `cp` включают:

`-r` или `-R` (рекурсивное копирование) — используется для копирования целых папок и их содержимого.
`-i` (интерактивный режим) — позволяет пользователю подтверждать замену существующих файлов.
`-v` (verbose) — выводит подробную информацию о процессе копирования.

Ниже приведены несколько примеров использования команды cp.

1. Копирование одного файла в другую папку:

cp файл.txt /путь/к/папке/

2. Копирование папки и ее содержимого:

cp -r папка /путь/к/целевой/папке/

3. Копирование с заменой существующих файлов:

cp -f файл.txt /путь/к/папке/

4. Копирование с подтверждением замены существующих файлов:

cp -i файл.txt /путь/к/папке/

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

Как установить команду cp

cp является частью стандартного набора команд в большинстве операционных систем, таких как Linux, macOS и Unix. Она обычно устанавливается по умолчанию и доступна из командной строки. Если вы не можете использовать cp в вашей операционной системе, убедитесь, что вы используете правильный синтаксис команды. Если проблема не в синтаксисе, то вероятно cp у вас не установлена.

Если вы используете Linux или Unix, более вероятно, что она уже установлена. Но если вы столкнулись с какими-либо проблемами, можно установить пакет `coreutils`, который включает команду `cp`. Для установки этого пакета используйте команду в вашем менеджере пакетов, например:

В Ubuntu или Debian: `sudo apt-get install coreutils`
В CentOS или Fedora: `sudo yum install coreutils`
В Arch Linux: `sudo pacman -S coreutils`

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

07. Создание и копирование файлов

Чтобы научиться работать с файлами, нам понадобятся тестовые файлы. Их мы можем создать с помощью команды touch filename. Вообще, основная задача touch – обновить время доступа к файлу, поэтому и такое название – потрогать. Если файл существует, применив touch на него ничего с ним не случится, только обновится информация в иноде, а если файла не существует – он создастся.

touch file 

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

С помощью touch можно разом создать несколько файлов:

touch file1 file2 file3 

Одна из фишек командной строки – возможность работать с регулярными выражениями. Например, мы можем написать:

touch file5..15> 

и баш преобразит это в:

touch file5 file6 file7 . 

и т.д., в итоге мы получим кучу файлов. Тоже самое работает и с буквами, допустим, тот же:

mkdir dir_a..f> 

Но о регулярных выражениях мы еще поговорим.

Также можно создавать невидимые файлы и директории. Для этого в начале имени файла или директории следует указывать точку. Например:

touch .file20 mkdir .dir_h 

Если посмотреть на вывод ls, скрытых файлов и директорий не увидеть. Чтобы их увидеть, для ls нужен ключ -a:

ls -a 

Тогда мы увидим все файлы в директории. Для того, чтобы увидеть скрытые файлы в файловом менеджере, можно нажать Ctrl + h. Тоже самое, чтобы скрыть. Обычно скрытые файлы нужны всяким программам для хранения настроек в домашней директории пользователя, но не только. В целом это позволяет скрыть ненужные пользователю файлы и директории.

И так, что можно делать с файлами? Начнём с копирования. Для этого используется команда cp – copy. Чтобы скопировать файл в текущую директорию, используем cp имя нужного файла и имя для копии:

cp file newfile 

Команда что-то сделала, а чтобы увидеть, что произошло, нужно посмотреть (ls). Многие команды сами могут показывать, что происходит во время работы. Обычно для этого используется опция verbose (подробно) — вы часто будете натыкаться на эту опцию. Обычно она пишется как -v. То есть:

cp -v file1 newfile1 

Тут мы видим, что файл скопировался.

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

cp -v file dir_a/newfile 

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

cp -v file dir_a 

Можно копировать из одной директории в другую:

cp -v dir_a/file dir_b/fileb 

либо также не указывая нового имени:

cp -v dir_a/file dir_b 

Ещё можно копировать из другой директории в текущую, используя ссылку для текущей директории – точку, как я говорил в прошлый раз. То есть:

cp -v dir_b/fileb . 

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

cp -v dir_b/fileb filea 

В общем, идея какая – для текущей директории путь не нужен, но нельзя просто написать:

cp dir_b/fileb 

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

cp -v /home/user/test/file8 ~/temp/dir_c 

Копирование скрытых файлов ничем не отличается от копирования обычных файлов – просто не забывайте указывать точку в начале названия файла, потому что это часть названия файла:

cp -v .file20 dir_c 

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

cp -v file6 file7 file8 dir_d 

Ну и по той же логике, указывая пути:

cp -v dir_a/file dir_b/fileb dir_d/file8 dir_e 

Помните про регулярные выражения? Можем использовать и здесь. Допустим:

cp -v file10..13> dir_e 

Кроме фигурных скобок, можно использовать и звёздочку – её часто называют wildcard – она означает, что подойдёт любое значение. Допустим, в директории dir_d есть три файла и я хочу скопировать все три:

cp -v dir_d/* dir_f 

Тогда все файлы скопируются. Или, допустим, я хочу скопировать все файлы, названия которых начинаются с file1, а сюда подходят файл file1, file10, file11, file12 и т.д. Я пишу cp -v file1* dir_e и все подходящие файлы скопируются.

Давайте рассмотрим ещё пару ключей. Допустим, ключ -i – интерактивно. Что это значит? Когда вы копируете файл, если существует файл с таким названием в директории назначения, этот файл просто перезапишется. Это не всегда нас устраивает, иногда мы хотим лично решать, что перезаписывать, а что нет. Поэтому здесь нам поможет ключ -i. Допустим, cкопируем все файлы в директорию dir_d:

cp -i file* dir_d 

Командная строка начнёт спрашивать, а что же делать с файлами, которые существуют там с тем же именем. Мы можем отказаться от перезаписывания файла, либо согласится. Обычно когда какая-то команда спрашивает вопрос, на который нужно ответить да/нет, то подходят ответы y, либо yes, n, либо no. Такой вариант – интерактивный — требует, чтобы вы лично сидели и решали, что делать с каждым совпадающим файлом.

Кстати, ключи можно использовать вместе. Допустим, мы знаем ключ -v и ключ -i. Мы можем использовать их вместе:

cp -v -i file newfile cp -iv file newfile cp -vi file newfile 

Порядок – какой ключ вначале, какой потом – почти никогда не имеет значения.

Другой вариант – мы не хотим перезаписывать файлы – тогда сразу используем опцию -n. Например:

cp -vn file* dir_d 

Тогда файлы в директории не перезапишутся. А если, допустим, мы хотим пропустить совпадающие файлы, а скопировать только файлы новее или отсутствующие файлы – тогда опция -u – update. То есть:

cp -vu file1* dir_e. 

Помните про жёсткие ссылки? Мы можем вместо копирования создать жёсткую ссылку. Например:

cp -vl file filelink 

Также мы можем копировать директории. Для этого используем опцию -r – рекурсивно. Допустим, я хочу скопировать директорию dir_a в директорию dir_b:

cp -vr dir_a dir_b 

Эту опцию можно использовать не только с директориями, но и с файлами, никому от этого хуже не станет. Забегая вперёд, скажу, что в большинстве случаев правильнее копировать с опцией -a вместо -r, по сути -a это опции -r и -d. Вкратце, это позволяет сохранить права и владельца файла у копии файла.

cp -va dir_a dir_b 

Как-то получилось, что я очень много времени уделил на копирование и лучше пока не перегружать вас информацией о других командах. Но то что мы сделали сегодня с одной командой, актуально и для большинства других команд – во многом ключи и подходы похожи.

© Авторские права 2021, GNU Linux Pro, CC-BY-SA-4.0. Ревизия b16e73a6 .

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

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