- Linux как сделать копию папки
- Команда Linux СP: руководство
- Команда Linux СP: копирование файла
- СP Примеры Linux
- Команда СP в Linux: скопировать файл в другой каталог
- Как скопировать папку с помощью команды Linux CP
- Копировать несколько файлов и папок
- Заключение
- Как копировать файлы и каталоги в Linux
- Копирование файлов с помощью команды cp
- Скопируйте файл в каталог
- Копировать несколько файлов
- Копирование каталогов с помощью команды cp
- Копирование файлов и каталогов с помощью команды rsync
- Выводы
- Копирование файлов и директорий: команда cp в Linux и MacOS
- Как создать копию файла в текущей директории
- Как скопировать файл в другую директорию
- Как скопировать несколько файлов в другую директорию
- Как скопировать одну директорию в другую
- Копирование директории целиком и копирование всего содержимого из директории
- Как предотвратить перезапись файлов при копировании
- Флаг —interactive
- Флаг —no-clobber
- Другие опции
Linux как сделать копию папки
Для копирования файлов используйте команду 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’, введите:
Источник
Команда Linux СP: руководство
Команда Linux cp копирует файл или папку на компьютер. Вы можете перемещать один или несколько файлов и папок одновременно. Синтаксис для cp — это имя копируемого файла, за которым следует место, где должна располагаться копия.
Копирование файлов и папок — задача, которую почти каждый, кто работает с Linux, выполняет ежедневно. Но, используя командную строку, это не так просто, как перетащить файл в другое окно на вашем компьютере. Скорее, вам нужно использовать команду cp для копирования файлов и папок.
В этом руководстве мы собираемся обсудить, как использовать команду Linux cp для копирования файлов и папок в системах Linux.
Команда Linux СP: копирование файла
Команда Linux cp используется для копирования файлов и каталогов в другое место. Чтобы скопировать файл, укажите «cp», а затем имя файла для копирования. Затем укажите место, в котором должен появиться новый файл. Новый файл не обязательно должен иметь то же имя, что и тот, который вы копируете.
Давайте посмотрим на синтаксис команды Linux cp:
«Источник» относится к файлу или папке, которую вы хотите переместить. «Назначение» — это целевой каталог, в который вы хотите переместить этот файл или папку.
Когда «источник» и «место назначения» оба файла, исходный файл будет скопирован в файл назначения. Если вы указываете несколько файлов или каталогов в качестве «источника», «местом назначения» должна быть папка, в которую эти файлы и каталоги могут быть перемещены.
СP Примеры Linux
Давайте рассмотрим несколько примеров, чтобы проиллюстрировать, как работает эта команда.
Команда cp в Linux: скопировать файл в текущий каталог
Одним из наиболее распространённых способов использования команды Linux cp является копирование файлов содержимого в текущий каталог. Использование Linux Ls команды, мы можем видеть, что наша текущая папка содержит следующие файлы:
Предположим, мы хотим создать копию файла «app.sh» в файл с именем «__init__.sh». Мы могли бы сделать это с помощью этой команды:
Когда мы запускаем эту команду, содержимое «app.sh» копируется в файл «__init__.sh». Поскольку файл «__init__.sh» не существует, он создаётся.
Если мы запустим ls, мы увидим, что наш обычный файл был создан на основе нашего предыдущего файла:
Мы указали новое имя для нашего скопированного файла. Нам не нужно было копировать наш файл, а затем переименовывать его с помощью команды Linux mv.
Если вы укажете, то же имя, что и у уже существующего файла, уже существующий файл будет перезаписан. Действительно, команда cp может перезаписать существующий файл.
Команда СP в Linux: скопировать файл в другой каталог
Мы также можем использовать команду Linux cp для копирования файла в другой каталог. Предположим, мы хотим создать копию нашего файла «__init__.sh» и сохранить её в каталоге «config». Мы могли бы сделать это с помощью этой команды:
Мы можем использовать ls для просмотра содержимого нашей папки «config»:
Эта команда возвращает:
Копия файла «__init__.sh» была создана в каталоге «config». Этот файл называется нашим «целевым файлом», как мы упоминали ранее в примере синтаксиса.
Вы можете указать новое имя файла для копии файла, который вы создаёте. Если вы хотите создать копию «README.md» в каталоге «config» и назвать её «readme.txt», вы можете сделать это с помощью этой команды:
Это похоже на то, как мы скопировали наш файл в последнем примере. Мы указали новое имя для нашего нового файла.
Как скопировать папку с помощью команды Linux CP
По умолчанию команда Linux cp не копирует каталог. Но вы всё равно можете использовать cp для копирования папки. Для этого вам нужно передать флаг -R.
Это скопирует папку и все её содержимое в другую папку. Синтаксис этой команды:
Предположим, мы хотим скопировать папку «bin» в «bin_backup». Мы могли бы сделать это с помощью этой команды:
Если указанный вами целевой каталог существует, содержимое исходного каталога будет скопировано в целевой каталог. В противном случае будет создана новая папка со значением, которое вы указали для «назначения».
Копировать несколько файлов и папок
Команда Linux cp позволяет копировать несколько файлов и папок. Синтаксис для этого следующий:
Предположим, мы хотим скопировать «app.sh» и «__init__.sh» в каталог с именем «bin». Мы могли бы сделать это с помощью этой команды:
Когда вы копируете несколько файлов, указываемым местом назначения должна быть папка.
В качестве альтернативы, если вы хотите скопировать несколько папок, вы должны указать папки в том же месте, где мы указали имена файлов выше. Итак, если вы хотите скопировать папки «bin» и «config» в папку «app», вы можете сделать это с помощью этой команды:
cp bin config app
Заключение
Команда Linux cp позволяет легко копировать файлы и папки. Вы можете использовать cp для копирования отдельных файлов и папок или для копирования нескольких файлов и папок.
Если вы хотите узнать больше об этой команде, вы можете запустить man cp на своём терминале. Это откроет описание использования команды cp из руководства Linux. Руководство довольно длинное, но оно даст вам невероятно подробную информацию об использовании команды cp.
Чтобы найти лучшие учебные ресурсы, книги и курсы по Linux, ознакомьтесь с нашим руководством «Как изучать Linux». У нас есть отдельное руководство, которое вы можете использовать для изучения командной строки.
Источник
Как копировать файлы и каталоги в Linux
Копирование файлов и каталогов — одна из наиболее распространенных задач, которые вы будете выполнять при работе в командной строке. В Linux есть несколько команд для копирования файлов, наиболее широко используемые инструменты — cp и rsync .
Обычной практикой является использование команды cp для копирования файлов и rsync для копирования каталогов.
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права записи в целевой каталог.
Копирование файлов с помощью команды cp
В операционных системах Linux и Unix команда cp используется для копирования файлов и каталогов.
Самый простой вариант использования — скопировать файл в текущий рабочий каталог. Например, чтобы скопировать файл с именем file.txt в файл с именем file_backup.txt в текущем каталоге , вы должны выполнить следующую команду:
Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте параметр -i .
По умолчанию при использовании команды cp для копирования файла новый файл будет принадлежать пользователю, выполняющему команду. Используйте параметр -p чтобы сохранить режим файла, владельца и временные метки :
Другой вариант, который может быть полезен, — это -v . При использовании этой опции команда печатает, что делается:
Скопируйте файл в каталог
Чтобы скопировать файл в каталог, укажите абсолютный или относительный путь к каталогу. Если целевой каталог не указан, файл копируется в текущий каталог.
В следующем примере мы file.txt файл file.txt в file.txt /backup :
При указании в качестве места назначения только имени каталога скопированный файл будет иметь то же имя, что и исходный файл.
Если вы хотите скопировать файл под другим именем, вам необходимо указать желаемое имя файла:
Приведенная выше команда скопирует файл в указанный каталог как new_file.txt .
Копировать несколько файлов
Чтобы скопировать сразу несколько файлов и каталогов, укажите имена исходных файлов и каталогов, за которыми следует каталог назначения в качестве последнего аргумента:
При копировании нескольких файлов местом назначения должен быть каталог.
Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все файлы .png из текущего каталога в каталог /backup , вы должны использовать:
Копирование каталогов с помощью команды cp
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r . В следующем примере мы копируем каталог Pictures в Pictures_backup :
Приведенная выше команда создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.
Если целевой каталог уже существует, сам исходный каталог и его содержимое копируются в целевой каталог. Чтобы скопировать только файлы и подкаталоги, но не целевой каталог, используйте параметр -T :
Параметры, используемые при копировании файлов, также могут использоваться при копировании каталогов. Основное отличие состоит в том, что при копировании каталогов необходимо использовать параметр -R .
Копирование файлов и каталогов с помощью команды rsync
rsync — это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и каталоги между двумя местоположениями. Его можно использовать для копирования файлов в локальные и удаленные места.
rsync включает множество параметров, которые контролируют каждый аспект его поведения.
Наиболее полезная опция -a которая рекурсивно копирует каталоги, передает специальные и блочные устройства и сохраняет символические ссылки, время модификации, группу, владение и разрешения.
Чтобы скопировать один файл из одного места в другое, вы должны выполнить следующую команду:
Если целевой файл существует, rsync перезапишет его.
Эту же команду можно использовать для копирования каталога:
rsync по-разному rsync исходным каталогам, заканчивающимся косой чертой / . Если вы добавите завершающую косую черту в исходный каталог, команда скопирует только содержимое исходного каталога в целевой каталог. Если косая черта в конце опущена, rsync скопирует исходный каталог в целевой каталог. Самый безопасный вариант — всегда включать косую черту / как в месте назначения, так и в источнике.
Чтобы узнать больше о rsync прочтите следующие статьи:
Выводы
Мы показали вам, как копировать файлы и каталоги в системах на базе Linux и Unix, используя утилиты cp и rsync .
Если у вас есть вопросы, оставьте комментарий ниже.
Источник
Копирование файлов и директорий: команда cp в Linux и MacOS
Перевод статьи «Copy a Directory in Linux – How to cp a Folder in the Command Line in Linux and Unix (MacOS)».
Для копирования файлов или директорий (папок) в Unix-подобных операционных системах (Linux и MacOS) используется команда cp .
Команда cp относительно простая, но ее поведение может изменяться в зависимости от передаваемых опций и того, что именно (файлы или директории) и куда копируется.
Для просмотра документации или руководства по использованию команды cp выполните в терминале команду man cp :
Примечание редакции Techrocks. Также для получения справки можно воспользоваться командой cp —help .
В своей базовой форме эта команда принимает в качестве инпута источник, который вы хотите скопировать, и «пункт назначения» — то, куда именно вы хотите его скопировать. Источником может быть файл, несколько файлов или вообще директория.
Как создать копию файла в текущей директории
Чтобы создать копию файла в той же директории, нужно передать команде cp имя исходного файла и имя, которое нужно дать файлу-копии.
Допустим, у вас есть файл a.txt и вы хотите создать его копию под именем b.txt в той же директории:
Для справки: команда ls выводит список файлов в текущей директории.
По умолчанию команда cp использует в качестве пути к файлам вашу текущую директорию.
Как скопировать файл в другую директорию
Чтобы скопировать файл в директорию, отличную от вашей текущей, нужно просто указать путь к ней:
После выполнения команды cp ранее пустая directory-1 содержит файл a.txt.
Примечание редакции Techrocks. В примере показан относительный путь к директории. Две точки перед слэшем означают «родительская директория». Допустим, ваша текущая директория — directory-2, которая находится в директории parent_directory. Команда ls ../directory-1/ выведет список файлов в directory-1, которая тоже находится в parent_directory.
По умолчанию копируемый файл сохраняет свое имя, но вы можете указать любое другое:
Как скопировать несколько файлов в другую директорию
Чтобы одновременно скопировать несколько файлов, вы можете передать команде несколько источников, а в конце указать пункт назначения:
В этом примере оба файла (first.txt и second.txt) были скопированы в директорию directory-1.
Примечание: при передаче нескольких источников последний аргумент обязательно должен быть директорией.
Как скопировать одну директорию в другую
Если вы попытаетесь передать команде cp в качестве источника имя директории, вы получите ошибку:
Для копирования директории целиком нужно добавить флаг -r (или -R , или —recursive ), указывающий, что копировать надо рекурсивно:
В следующем примере у нас есть две директории (directory-1 и directory-2), расположенные в нашей текущей директории. В directory-1 есть файл a.txt. Мы рекурсивно копируем directory-1 в directory-2. После этого в нашей текущей директории по-прежнему есть directory-1 и directory-2, при этом в directory-2 есть копия directory-1, содержащая файл a.txt.
Копирование директории целиком и копирование всего содержимого из директории
Примечание редакции Techrocks. Когда мы попробовали применить эту инструкцию в терминале Linux, у нас ничего не вышло. В одной статье мы нашли, что описанный функционал работает в MacOS, но не в Linux. Поэтому здесь мы сначала приведем перевод инструкций автора, а затем от себя дополним их.
При копировании директории есть интересный нюанс. Если директория, которую вы указываете как пункт назначения, уже существует, вы можете скопировать в нее либо все содержимое директории-источника, либо всю директорию-источник целиком. Выбор регулируется добавлением конечного слэша / к имени директории-источника.
Вот описание опции -R в мануале ( man ):
Если файл_источник является директорией, cp копирует директорию и все поддерево, подключенное к этой точке. Если файл_источник заканчивается на / , копируется содержимое этой директории, а не сама директория.
Поэтому, если вы хотите скопировать в другое место только файлы и папки из директории-источника, добавьте в конце слэш / .
Если вы хотите скопировать всю папку вместе со всем ее содержимым, не добавляйте в конце слэш / .
Для пользователей Linux: после слэша нужно добавить точку. Если хотите почитать более подробно, вот хорошая статья на Хабре.
Как предотвратить перезапись файлов при копировании
По умолчанию команда cp перезаписывает существующие файлы. Для примера создадим в текущей директории файл a.txt с текстом A, а в директории directory-1 — файл a.txt с текстом B. При копировании файла a.txt из текущей директории в directory-1 файл a.txt перезаписывается (в его содержимом было B, стало A).
Примечание: команда cat среди прочего служит для вывода содержимого файлов на экран.
Есть два способа предотвратить перезапись файлов.
Флаг —interactive
Чтобы при возможной перезаписи получить предупреждение, можно добавить к команде cp флаг -i (или —interactive):
Флаг —no-clobber
Флаг -n (или —no-clobber ) позволяет предотвращать перезапись по умолчанию, не спрашивая пользователя:
На этом примере видно, что благодаря флагу -n содержимое файла directory-1/a.txt не было перезаписано.
Другие опции
Команде cp можно передавать много других полезных опций. Например, -v для «многословного» вывода или -f для «принудительного» выполнения. Я советую почитать страницу man , чтобы хотя бы знать, какие есть варианты.
Источник