Разное

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

Содержание

Копирование, перемещение, создание и удаление файлов и каталогов. Курс «Введение в Linux и Bash»

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

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

В Bash для копирования файлов используется команда cp (от «copy»), которой обычно передаются два аргумента:

  1. адрес с именем исходного файла,

  2. новый адрес с именем или просто адрес каталога, куда помещается копия.

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

Рассмотрим примеры.

cp readme readme2

В данном случае создается копия файла readme, которая остается в той же директории под именем readme2.

cp readme Desktop/

В папку Desktop копируется файл readme. Здесь текущим является родительский Desktop’у каталог. Имена копии и файла оригинала будут совпадать, а вот полные адреса – нет.

cp /home/irina/tux.png /mnt/D/pingvin.png

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

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

Чтобы скопировать каталог со всем его содержимым, необходимо использовать ключ -r команды cp:

cp -r ./letters .

/oldletters

Перемещение и переименование

В Bash-оболочке Linux для перемещения и переименования используется одна и та же команда – mv (от «move» – перемещать). Переименование можно рассматривать как частный случай перемещения, ведь по-сути изменяется полный адрес файла, что равносильно перемещению, даже если файл остается в том же каталоге.

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

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

mv document.txt Work

mv document. txt Work/doc23.txt

Здесь в первом случае файл document.txt перемещается в каталог Work. Во-втором случае одновременно происходит перемещение файла и его переименование: файл document.txt перемещается в директорию Work и получает новое имя doc23.txt.

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

mv order.txt orderNew.txt

mv Work/list.odt Work/names.odt

Каталоги перемещаются и переименовываются по тому же принципу, что и файлы. Групповое перемещение файлов работает также, как с командой cp.

Создание файлов и каталогов

Новые директории создаются командой mkdir. Например, чтобы создать каталог Work в текущей директории необходимо выполнить следующую команду:

mkdir Work
или
mkdir ./Work

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

cal > ./Work/January

Здесь программа cal выводит календарь на текущий месяц, а поскольку стоит знак перенаправления вывода, то вывод команды будет записан в файл January, находящийся в папке Work.

Удаление файлов и каталогов

Для удаления файлов используется команда rm. Например:

rm ghost.png

Командой rmdir можно удалить пустой каталог. Если же каталог не пуст, следует использовать команду rm с ключом -r:

Вопросы

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

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

Курс с ответами к заданиям и дополнительными уроками:
android-приложение, pdf-версия.

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

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

Обычной практикой является использование команды cp для копирования файлов и rsync для копирования каталогов.

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

Содержание

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

cp

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

Самый простой вариант использования — скопировать файл в текущий рабочий каталог. Например, чтобы скопировать файл с именем

file.txt в файл с именем file_backup. txt в текущем каталоге , вы должны выполнить следующую команду:

cp file.txt file_backup.txt

Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте параметр -i .

cp -i file.txt file_backup.txt

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

cp -p file.txt file_backup.txt

Другой вариант, который может быть полезен, — это -v . При использовании этой опции команда печатает, что делается:

cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'

Скопируйте файл в каталог

Чтобы скопировать файл в каталог, укажите абсолютный или относительный путь к каталогу. Если целевой каталог не указан, файл копируется в текущий каталог.

В следующем примере мы file.txt файл file.txt в file.txt /backup :

cp file.txt /backup

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

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

cp file.txt /backup/new_file.txt

Приведенная выше команда скопирует файл в указанный каталог как new_file.txt .

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

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

cp file.txt dir file1.txt file2.txt dir1

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

Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все файлы .png из текущего каталога в каталог /backup , вы должны использовать:

cp *.png /backup

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

cp

Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r . В следующем примере мы копируем каталог Pictures в Pictures_backup :

cp -R Pictures Pictures_backup

Приведенная выше команда создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.

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

cp -RT Pictures Pictures_backup

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

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

rsync

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

rsync включает множество параметров, которые контролируют каждый аспект его поведения.

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

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

rsync -a file.txt file_backup.txt

Если целевой файл существует, rsync перезапишет его.

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

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync

по-разному 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:

$ man cp
NAME
     cp -- copy files
SYNOPSIS
     cp [OPTIONS] source_file target_file
     cp [OPTIONS] source_file ... target_directory
...

Примечание редакции Techrocks. Также для получения справки можно воспользоваться командой

cp --help.

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

cp [OPTIONS] source_file target_file

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

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

Допустим, у вас есть файл a.txt и вы хотите создать его копию под именем b.txt в той же директории:

$ ls a.txt $ cp a.txt b.txt $ ls a.txt b.txt

Для справки: команда ls выводит список файлов в текущей директории.

По умолчанию команда cp использует в качестве пути к файлам вашу текущую директорию.

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

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

$ ls . ./directory-1/
$ cp a.txt ../directory-1/
$ ls ../directory-1/
a.txt

После выполнения команды cp ранее пустая directory-1 содержит файл a.txt.

Примечание редакции Techrocks. В примере показан относительный путь к директории. Две точки перед слэшем означают «родительская директория». Допустим, ваша текущая директория — directory-2, которая находится в директории parent_directory. Команда ls ../directory-1/ выведет список файлов в directory-1, которая тоже находится в parent_directory.

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

$ cp a.txt ../directory-1/b.txt
$ ls ../directory-1/
b.txt

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

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

$ ls . ./directory-1/
$ cp first.txt second.txt ../directory-1/
$ ls ../directory-1/
first.txt       second.txt

В этом примере оба файла (first.txt и second.txt) были скопированы в директорию directory-1.

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

Как скопировать одну директорию в другую

Если вы попытаетесь передать команде cp в качестве источника имя директории, вы получите ошибку:

$ cp directory-1 directory-2
cp: directory-1 is a directory (not copied).

Для копирования директории целиком нужно добавить флаг -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.

$ ls
directory-1          directory-2
$ ls directory-1
a.txt
$ ls directory-2
$ cp -r directory-1 directory-2
$ ls directory-2
directory-1
$ ls directory-2/directory-1
a.txt

Копирование директории целиком и копирование всего содержимого из директории

Примечание редакции Techrocks. Когда мы попробовали применить эту инструкцию в терминале Linux, у нас ничего не вышло. В одной статье мы нашли, что описанный функционал работает в MacOS, но не в Linux. Поэтому здесь мы сначала приведем перевод инструкций автора, а затем от себя дополним их.

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

Вот описание опции -R в мануале (man):

Если файл_источник является директорией, cp копирует директорию и все поддерево, подключенное к этой точке. Если файл_источник заканчивается на /, копируется содержимое этой директории, а не сама директория.

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

$ ls directory-1
a. txt
$ cp -r directory-1/ directory-2
$ ls
directory-1          directory-2
$ ls directory-2
a.txt

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

Для пользователей Linux: после слэша нужно добавить точку. Если хотите почитать более подробно, вот хорошая статья на Хабре.

$ ls directory-1
a.txt
$ cp -r directory-1/. directory-2
$ ls
directory-1          directory-2
$ ls directory-2
a.txt

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

По умолчанию команда cp перезаписывает существующие файлы. Для примера создадим в текущей директории файл a.txt с текстом A, а в директории directory-1 — файл a.txt с текстом B. При копировании файла a.txt из текущей директории в directory-1 файл a. txt перезаписывается (в его содержимом было B, стало A).

$ cat a.txt
A
$ cat directory-1/a.txt
B
$ cp a.txt directory-1/a.txt
$ cat directory-1/a.txt
A

Примечание: команда cat среди прочего служит для вывода содержимого файлов на экран.

Есть два способа предотвратить перезапись файлов.

Флаг —interactive

Чтобы при возможной перезаписи получить предупреждение, можно добавить к команде cp флаг -i (или —interactive):

$ cp -i a.txt directory-1/a.txt
overwrite directory-1/a.txt? (y/n [n])
Флаг —no-clobber

Флаг -n (или --no-clobber) позволяет предотвращать перезапись по умолчанию, не спрашивая пользователя:

$ cat a. txt
A
$ cat directory-1/a.txt
B
$ cp -n a.txt directory-1/a.txt
$ cat directory-1/a.txt
B

На этом примере видно, что благодаря флагу -n содержимое файла directory-1/a.txt не было перезаписано.

Другие опции

Команде cp можно передавать много других полезных опций. Например, -v для «многословного» вывода или -f для «принудительного» выполнения. Я советую почитать страницу man, чтобы хотя бы знать, какие есть варианты.

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

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

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


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

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

Самый простой вариант использования — скопировать файл в текущем рабочем каталоге. Например, чтобы скопировать файл с именем file.txt в файл с именем file_backup.txt в текущем каталоге , вы должны выполнить следующую команду:

cp file.txt file_backup.txt 


   Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте -i опцию.

cp -i file.txt file_backup.txt 


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

cp -p file. txt file_backup.txt 


   Еще одна полезная опция -v . При использовании этой опции команда печатает, что делается:

cp -v file.txt file_backup.txt 
'file.txt' -> 'file_backup.txt'
 


Скопируйте файл в каталог

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


   В следующем примере мы копируем файл file.txt в /backup каталог:

cp file.txt /backup 


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

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

cp file.txt /backup/new_file. txt 


   Команда выше скопирует файл в указанный каталог как new_file.txt .


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

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

cp file.txt dir file1.txt file2.txt dir1 


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

Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все .png файлы из текущего каталога в /backup каталог, вы должны использовать:

cp *.png /backup 


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

Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r . В следующем примере мы копируем каталог Pictures в Pictures_backup :

cp -R Pictures Pictures_backup 


Команда выше создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.

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

cp -RT Pictures Pictures_backup 


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

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

rsync команды

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

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

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

rsync -a file.txt file_backup.txt 


   Если целевой файл существует, он rsync будет перезаписан.

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

rsync -a /var/www/public_html/ /var/www/public_html_backup/ 


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

Чтобы узнать больше о rsync проверке следующих статей:

  • Как использовать Rsync для локальной и удаленной передачи данных и синхронизации
  • Как исключить файлы и каталоги с помощью Rsync


Вывод 

В этом руководстве мы показали вам , как копировать файлы и каталоги в Linux и Unix системах , основанных на использовании cp и rsync утилиты.

11.4. Копирование файлов между Linux компьютерами | Документация openSUSE

Linux предлагает богатый выбор протоколов, которые вы можете использовать чтобы копировать файлы между компьютерами. Выбор протокола зависит от того, насколько много усилий вы хотите вложить и нуждаетесь ли вы в совместимости с будущими установками Windows. Следующие секции представляют различные методы передачи файлы из и в Linux компьютеры. Убедитесь, что вы имеете работоспособное сетевое соединение, иначе они не будут работать. Все сценарии предполагают работу службы разрешения имен в сети. Если ваша сеть не включает службу имен, используйте непосредственно IP адрес или добавьте IP адреса в соответствии с именами хостов (компьютеров) в /etc/hosts на всех компьютерах.

Следующий пример IP адресов и имен хостов используется на протяжении всего этого раздела:

11.4.1. Копирование файлов с помощью SSH

Следующие требования должны быть удовлетворены и на сервере, и со стороны клиента:

  1. Если вы используете имена хостов, то убедитесь, что каждое имя фигурирует в /etc/hosts на сервере и на клиенте . Если вы используете IP адреса, вам не нужно ничего менять.

  2. Если вы используете брандмауэр, откройте порт SSH. Запустите YaST и выберите Пользователи и безопасность+Брандмауэр. Далее Разрешенные службы и проверьте, отображается ли SSH в списке разрешенных служб. Если нет то, выберите SSH из выпадающего меню Разрешить службу и щелкните Добавить. Примените ваши изменения и покиньте YaST нажав Далее и затем Применить.

Чтобы копировать файлы с сервера клиенту, вы должны знать, где файлы размещаются на сервере. Например, чтобы копировать единственный файл /srv/foo_file с сервера jupiter.example.com в текущий каталог, используйте команду scp (точка указывает на текущий каталог):

scp [email protected]:/srv/foo_file .

Чтобы копировать целый каталог, используйте рекурсивный режим scp:

scp -r [email protected]:/srv/foo_directory .

Если ваша сеть не имеет службы разрешения имен, используйте непосредственно IP адрес сервера:

scp tux@192. 168.2.100:/srv/foo_file .

Если вы не знаете точно где находится ваш файл, используйте команду sftp. Копирование файлов в KDE или GNOME с помощью SFTP очень просто. Поступите следующим образом:

  1. Нажмите Alt+F2.

  2. Введите следующее в адресной строке:

    sftp://[email protected]
  3. Введите ваш пароль tux на jupiter.example.com.

  4. Перетащите ваши файлы или каталоги с сервера на ваш рабочий стол или локальный каталог.

KDE предоставляет другой протокол, называемый fish, который может быть использован если sftp недоступен. Использование этого протокола подобно sftp. Замените префикс протокола sftp в URL на fish:

fish://[email protected]

11.4.2. Передача файлов с помощью rsync

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

  1. Пакет rsync установлен.

  2. Идентичные пользователи присутствуют на обоих системах.

  3. Доступно достаточное дисковое пространство на сервере.

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

rsync полезен для архивирования или копирования данных и так же может быть использован как демон, чтобы предоставить каталоги в сеть (смотрите Расширенная настройка синхронизации с помощью rsync).

11.4.2.1. Базовый режим rsync

Базовый режим работы rsync не требует ни каких специальных конфигураций. rsync позволяет идеально отображать целые каталоги с одной системы на другую. Его использование не сильно отличается от инструмента для регулярного копирования, такого как scp. Следующая команда создает резервную копию домашнего каталога tux на сервере резервного копирования называемом jupiter:

rsync -Hbaz -e ssh /home/tux/ tux@jupiter:backup

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

rsync -Haz -e ssh tux@jupiter:backup /home/tux/

11.
4.2.2. rsync в режиме демона (службы)

Запустите демон rsyncd на одной из ваших систем, чтобы использовать rsync полнофункционально. В этом режиме возможно создание точек синхронизации (модулей), которые могут быть доступны без учетных записей. Чтобы использовать демон rsyncd, проделайте следующее:

Процедура 11.1. Расширенная настройка синхронизации с помощью rsync

  1. Войдите как root и установите пакет rsync.

  2. Настройте ваши точки синхронизации в /etc/rsyncd.conf. Добавьте имя точки в квадратных скобках и path ключевое слово, как показано в примере:

    						
    [FTP]
      path = /srv/ftp
     comment = An Example
  3. Запустите демон rsyncd от имени root rcrsyncd start. Чтобы автоматически запускать демон rsync во время загрузки системы, вызовите insserv rsyncd.

  4. Чтобы получить список всех файлов размещенных в каталоге /srv/ftp введите (заметьте: двойное двоеточие):

    rsync -avz jupiter::FTP
  5. Инициируйте передачу указав целевой каталог (в этом примере текущий каталог представлен точкой):

    rsync -avz jupiter::FTP . 

По умолчанию, файлы не удаляются в процессе синхронизации. Чтобы форсировать удаление файлов, добавьте опцию --delete. Чтобы гарантировать, что опция --delete случайно не удаляет новые файлы, используйте вместо нее опцию --update. Любые возникающие конфликты должны быть разрешены в ручную.

11.4.3. Передача файлов с помощью Unison

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

  1. Установлен пакет unison.

  2. Есть достаточно свободного места у вас на локальном и удаленном компьютерах.

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

В случае необходимости, запустите Unison с опцией -doc topics для получения полного списка доступных разделов.

Для постоянных настроек, Unison позволяет создать profiles (профили), которые определяют параметры Unison, такие, как директории (корни) для синхронизации, игнорируемые типы файлов и другие настройки. Профили хранятся в виде текстовых файлов в ~/.unison с расширением *.prf.

11.4.3.1. Использование GUI

Для синхронизации различных каталогов с помощью Unison’s GUI, проделайте следующее:

  1. Запустите Unison нажатием Alt+F2 и введите unison.

  2. Если вы запустили Unison в первый раз и без каких-либо опций, у вас запросят каталог-источник. Введите каталог-источник который вы хотите синхронизировать и нажмите OK.

  3. Введите каталог назначения. Он может быть локальным или удаленным. Если вы хотите синхронизироваться с удаленным каталогом, выберите метод (SSH, RSH или Socket) и введите и имя хоста и дополнительного пользователя.

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

    В левой колонке показан выбранный каталог источник, в третьей колонке показан каталог назначения. Если существуют различия между каталогами, в колонке Действия указано условное обозначение, предлагаемых действий. Зеленый стрелка указывает, что файл был изменен, добавлен или удален в папке источнике или папке назначения. Направление стрелки указывает направление изменений которые произойдут, если произвести синхронизацию. Вопросительный знак указывает на конфликт (то есть файлы были изменены и Unison не будет автоматически перезаписывать их).

    Рисунок 11.1. Варианты синхронизации файлов


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

  6. Для запуска синхронизации, нажмите Начать.

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

11.4.3.2. Использование командной строки

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

  1. Откройте консоль и введите следующую команду:

    unison -ui text DIR         ssh://[email protected]//PATH

    Замените метки с соответствующих значений.

  2. Unison спросит, что делать с вашими файлами и каталогами, например:

    local                  jupiter
               <----  new file   dir [f]
  3. Нажмите F если вы хотите следовать рекомендациям Unison. Чтобы увидеть другие команды нажмите ?.

  4. Нажмите y, если вы хотите обновить.

11.4.4. Копирование файлов с помощью FTP

Перед настройкой вашего FTP сервера, убедитесь, что выполняются следующие требования:

  1. Установлен пакет vsftp.

  2. У вас есть доступ root к FTP сервера.

  3. Есть достаточно дискового пространства на вашем компьютере.

Только для домашних сетей

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

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

  1. Подготовка FTP сервера:

    1. Откройте консоль, войдите в систему как root и сделайте резервную копию /etc/vsftpd. conf:

      cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
    2. Создайте точку доступа для анонимного FTP

      mkdir ~ftp/incoming
      chown -R ftp:ftp ~ftp/incoming
  2. Замените файлы конфигурации в соответствии с вашими потребностями (смотрите man-страницу vsftpd.conf об опциях расширенной конфигурации):

    Разрешение анонимного доступа на чтение и запись
    #
    listen=YES
    									
    # Разрешение анонимного доступа к FTP серверу
    anonymous_enable=YES
    									
    #
    local_enable=YES
    # Разрешить запись
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    dirmessage_enable=YES
    # писать лог-файл 
    xferlog_enable=YES
    connect_from_port_20=YES
    chown_uploads=YES
    chown_username=ftp
    ftpd_banner=Welcome to FTP service.
    anon_root=/srv/ftp
    Предоставление ограниченных прав для FTP пользователей (только для дома)
    chroot_local_users=YES
  3. Перезапустите FTP сервер

    rcvsftp start

На клиентской машине, введите адрес ftp://HOST в вашем браузере или FTP клиенте. Замените HOST именем хоста или IP адресом вашего сервера. Для пользователей доступно множество графических интерфейсов, которые подходят для навигации по вашему FTP серверу. Чтобы просмотреть их список, введите FTP в строке поиска менеджера пакетов YaST.

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

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

Знание о команде cp полезны, ведь файловый менеджер может некорректно работать из-за проблем с графической оболочкой. Серверные компьютеры вообще управляются только через консоль. Перемещать файлы с помощью терминала очень удобно, в этом может убедиться каждый пользователь. Скопировать файлы можно как с помощью утилиты cp, так же используя tar и find.

Содержание

  • 1 Синтаксис
  • 2 Примеры
    • 2.1 Регулярные выражения
    • 2.2 Копирование при помощи перенаправления вывода
    • 2.3 TAR
      • 2.3.1 Итог

Синтаксис

Рассмотрим синтаксис утилиты.

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 test.conf{,.bak}

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

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

Регулярные выражения

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

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

Вот пример, в нем проводится копирование файлов, которые содержат цифры от 1 до 5:

find /root -name [1-5] -exec cp {} /root/newpapka \;

ВАЖНО! Обязательно в конце команды нужно ввести «;», в противном случаи будет ошибка — exec аргумент не задан.

Здесь:

  • /root — каталог где производить поиск.
  • -name — критерии поиска.
  • [1-5] — что искать, в данном случаи от одного до пяти.
  • -exec — аргумент, который говорит, что нужно запустить команду.
  • {} — подставляет имя каждого файла.

Сделать то же самое можно и не прибегая к find, можно обратиться к утилите ls, выбрать нужные файлы, используя регулярные выражения egrep, затем отправить их под контроль cp, применяя при этом xargs:

ls -1 /root | egrep '[1-5]' | xargs cp -t /root/newpapka

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

Копирование при помощи перенаправления вывода

В операционной системе Linux есть специальный символ «>», который означает перенаправление вывода.

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

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

Вот пример:

cat file1 > newfile

TAR

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

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

С помощью cp так делать можно, однако на помощь придется позвать утилиту tar, чтобы она начала работу следует написать в cp «-p».

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

tar cf - /lfc | ( cd /epl/lfc && tar xvf - )

С помощью данной команды все из папки /lfc отправляется в папку /epl/lfc. Таким способом можно скопировать любую информацию с компьютера, даже если это операционная система.

Итог

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

Как копировать файлы и каталоги в Linux {с примерами}

Введение

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

Примечание: Эти команды Linux можно запускать только из окна терминала. Если ваша версия Linux загружается с графическим интерфейсом рабочего стола, запустите окно терминала, нажав CTRL-ALT-F2 или CTRL-ALT-T .

Использование команды cp для копирования файлов и каталогов в Linux

Команда cp является основным методом копирования файлов и каталогов в Linux. Практически все дистрибутивы Linux могут использовать cp . Основной формат команды:

 cp [дополнительная_опция] исходный_файл целевой_файл 

Например:

 cp my_file.txt my_file2.txt 

Эта команда Linux создает копию my_file.txt и переименовывает новый файл в my_file2. txt .

По умолчанию команда cp выполняется в том же каталоге, в котором вы работаете. Однако один и тот же файл не может существовать дважды в одном каталоге. Вам нужно будет изменить имя целевого файла, чтобы скопировать его в то же место. Некоторые пользователи добавят _old , некоторые добавят номер, а некоторые даже изменят трехбуквенное расширение (например, .bak вместо 9).0007 .txt ).

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

Additional Options

Additional options can be used in combination with the cp command:

  • –v   verbose : shows the progress of multiple copied files
  • –p   preserve : сохраняет те же атрибуты, такие как дата создания и права доступа к файлу
  • - F Force : Force The Copy, удалив существующий файл первой
  • –i Interactive : подсказка для подтверждения, высококвешенные
  • –R 9007. и подпапки в каталоге
  • –u update : копировать, только если источник новее, чем место назначения

Примечание: Параметр -p (сохранить) заставляет систему сохранить исходный файл атрибуты: время модификации, время доступа, идентификатор пользователя (UID), идентификатор группы (GID), флаги файла, режим файла, списки управления доступом (ACL) и расширенные атрибуты (EA).

Как скопировать файл в другой каталог в Linux

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

 cp my_file.txt /new_directory 

Вам не нужно переименуйте файл, если в целевом каталоге уже нет файла с таким же именем.

Чтобы указать путь к исходному файлу:

 cp /etc/my_file.txt /new_directory 

Это позволяет копировать без изменения каталогов. 9Команда 0007 cp создаст каталог /new_directory , если он не существует.

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

 cp my_file.txt /new_directory/my_file2.txt 

Этот параметр полезен для создания резервных копий файлов конфигурации или для копирования данных на устройство хранения.

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

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

Список всех файлов, которые необходимо скопировать перед целевым каталогом:

 cp my_file.txt my_file2.txt my_file3.txt /new_directory 

В этом примере были созданы копии всех трех файлов в папке /new_directory .

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

 cp /pictures/*.jpg /new_directory 

При этом будут найдены все файлы с расширением .jpg в каталоге /pictures , и скопируйте их в папку /new_directory .

До скопируйте всю папку и ее вложенные папки и файлы , используйте параметр –R : это место». Это скопирует все файлы, а также все каталоги в папку / new_directory .

Копирование с помощью команды rsync

Команда rsync в Linux используется для синхронизации или передачи данных между двумя местоположениями. Использование аналогично cp , но следует отметить несколько ключевых отличий.

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

 rsync –a my_file.txt /new_directory/my_file_backup.txt 
  • Параметр –a означает, что включает все и , а rsync команды — это сохраняет подкаталоги, символические ссылки и другие метаданные.
  • Замените файл my_file.txt в рабочем каталоге.
  • Замените /new_directory/ на место назначения.
  • Использование my_file_backup.txt в качестве цели указывает, что файл будет переименован во время копирования.

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

 rsync –a /etc/docker/ /home/backup/docker/ 

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

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

Другие параметры

Команда ls является удобным дополнением к команде cp в Linux.

Чтобы просмотреть содержимое каталога, введите команду:

 ls /directory 

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

Чтобы сменить каталог, используйте cd и имя каталога. Например:

 cd /other_directory 

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

Заключение

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

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

(Изображение предоставлено Tom’s Hardware)

Копирование файлов и каталогов в терминале Linux действительно эффективно и просто, если вы знаете, как это делать. Это полезно, когда нам нужно управлять нашими файлами и каталогами без использования графического интерфейса, например, в сценарии BASH. Мы можем сделать это независимо от того, находимся ли мы за своим столом или если мы получаем доступ к машине удаленно через SSH.

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

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

Все команды в этом руководстве будут работать на большинстве машин Linux. Мы использовали установку Ubuntu 20.04, но вы можете запустить это руководство на Raspberry Pi . Все инструкции выполняются через Терминал. Вы можете открыть окно терминала на большинстве машин Linux, нажав ctrl, alt и т.

(Изображение предоставлено Tom’s Hardware)

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

 cp <расположение и имя копируемого элемента> <местоположение и имя копируемого элемента> 

1. Создайте новый файл с именем test1.txt.

 touch test1.txt 

2. Список содержимого каталога, чтобы проверить, был ли создан файл. Теперь вы должны увидеть файл test1.txt.

 ls 

3. Скопируйте файл test1.txt и переименуйте его в test2.txt. Это копирует элемент в тот же каталог, что и исходный, но в новый файл.

 cp test1.txt test2.txt 

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

 ls 

Как скопировать каталог в Linux

(Изображение предоставлено Tom’s Hardware)

Давайте рассмотрим аналогичный пример, чтобы показать, что cp можно использовать для копирования каталога с помощью аргумента -r . Хотя в качестве примера мы использовали пустой каталог, любое содержимое каталога также будет скопировано в новый каталог с использованием этого аргумента.

1. Создайте пустой каталог в своем домашнем каталоге.

 mkdir test_directory 

2. Скопируйте и переименуйте новый каталог.

 cp -r test_directory test_directory_2 

3. Список содержимого каталога, чтобы проверить, создан ли скопированный каталог. Вы должны увидеть в списке каталоги test_directory и test_directory_2.

 ls 

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

(Изображение предоставлено Tom’s Hardware)

В следующем примере давайте рассмотрим копирование файла в другое место.

1. Создайте пустой каталог в своем домашнем каталоге.

 mkdir test_directory 

2. Создайте тестовый файл в своем домашнем каталоге.

 touch test1.txt 

3. Скопируйте тестовый файл из домашнего каталога в тестовый каталог. Это копирует test1.txt из домашнего каталога в test_directory.

 $ cp test1.txt test_directory 

4. Проверьте правильность копирования файла, изменив каталог на test_directory и перечислив содержимое.

 компакт-диск test_directory
9 фунтов0027  

Как копировать файлы в каталоги и из них при их переименовании

(Изображение предоставлено Tom's Hardware)

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

1. Создать 2 пустых каталога. Из домашнего каталога выполните следующую команду, чтобы создать два новых каталога.

 mkdir папка1 папка2 

2. Переместитесь внутрь папка1 и создайте тестовый файл с именем test1.txt.

 папка для компакт-дисков1
touch test1.txt 

3. Возврат в каталог home .

 cd 

4. Скопируйте и переименуйте тестовый файл из домашнего каталога . Мы можем предоставить команде cp имя и расположение целевого файла для копирования, а также место для копирования файла, попутно переименовав его в test2.txt.

 cp folder1/test1.txt folder2/test2.txt 

5. Убедитесь, что файл скопирован правильно , изменив каталог на folder2 и перечислив содержимое. Используйте cd для смены каталога и ls для проверки правильности копирования файла. Вы должны увидеть test2.txt в списке folder2 .

 папка компакт-диска2
ls 

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

(Изображение предоставлено Tom's Hardware)

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

1. Создайте тестовый каталог, используя mkdir .

 mkdir test_directory
 

2. Переместиться в test_directory .

 компакт-диск test_directory
 

3. Создайте тестовый файл внутри test_directory.

 сенсорный test1.txt
 

4. Скопируйте test1.txt в родительский каталог. Здесь мы просто добавляем .. к команде cp , чтобы создать копию test1.txt в родительском каталоге текущего местоположения.

 cp test1.txt .. 

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

 компакт-диск
ls 

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

Джо Хинчлифф (Jo Hinchliffe) — внештатный автор из Великобритании для Tom's Hardware US. Его тексты сосредоточены на учебниках по командной строке Linux.

Темы

Линукс

Команда Linux cp: Руководство

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

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

Найдите подходящий учебный лагерь

  • Career Karma подберет для вас лучшие технологические учебные курсы
  • Доступ к эксклюзивным стипендиям и подготовительным курсам

Выберите интересующий вас вопрос
Разработка программного обеспеченияДизайнОбработка и анализ данныхАналитика данныхПродажиUX-дизайнКибербезопасностьЦифровой маркетингИмя

Фамилия

Электронная почта

Номер телефона

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

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

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

Команда cp Linux используется для копирования файлов и каталогов в другое место. Чтобы скопировать файл, укажите «cp», а затем имя файла для копирования. Затем укажите место, где должен появиться новый файл. Новый файл не обязательно должен иметь то же имя, что и тот, который вы копируете.

Давайте посмотрим на синтаксис команды cp в Linux:

 cp [источник] [назначение] 

«Источник» относится к файлу или папке, которые вы хотите переместить. «Назначение» — это целевой каталог, в который вы хотите переместить этот файл или папку.

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

cp Linux Examples

Давайте рассмотрим несколько примеров, чтобы проиллюстрировать, как работает эта команда.

Команда cp в Linux: копирование файла в текущий каталог

Одним из наиболее распространенных применений команды cp в Linux является копирование файлов содержимого в текущий каталог. С помощью команды Linux ls мы видим, что наша текущая папка содержит следующие файлы:

 README.md
app.sh
конфиг/
мусорное ведро /
app/ 

Предположим, мы хотим создать копию файла «app.sh» в файле с именем «__init__.sh». Мы могли бы сделать это с помощью этой команды:

 cp app.sh __init__.sh 

Когда мы запускаем эту команду, содержимое «app.sh» копируется в файл «__init__.sh». Поскольку файл «__init__.sh» не существует, он создается.

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

 README. md
app.sh
__инит__.ш
config/ 

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

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

Команда cp в Linux: копирование файла в другой каталог

Мы также можем использовать команду cp Linux для копирования файла в другой каталог. Предположим, мы хотим создать копию нашего файла «__init__.sh» и сохранить его в каталоге «config». Мы могли бы сделать это с помощью этой команды:

 cp __init__.sh config/ 

Мы можем использовать ls для просмотра содержимого нашей папки «config»:

 ls config/ 

Эта команда возвращает:

 __init__.py 

Создана копия файла «__init__.sh» в каталоге «config». Этот файл называется нашим «целевым файлом», как мы упоминали в примере с синтаксисом ранее.

Вы можете указать новое имя файла для копии создаваемого файла. Если вы хотите создать копию «README.md» в каталоге «config» и назвать ее «readme.txt», вы можете сделать это с помощью этой команды:

 cp README.md config/readme.txt 

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

Как скопировать папку с помощью команды Linux cp

По умолчанию команда Linux cp не копирует каталог. Но вы все равно можете использовать cp для копирования папки. Для этого вам необходимо передать флаг -R .

При этом папка и все ее содержимое будут скопированы в другую папку. Синтаксис этой команды:

 cp -R [источник] [назначение] 

Предположим, мы хотим скопировать папку «bin» в «bin_backup». Мы можем сделать это с помощью этой команды:

 cp -R bin bin_backup 

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

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

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

 cp [файл1] [файл2] … [назначение] 

Предположим, мы хотим скопировать «app.sh» и «__init__.sh» в каталог с именем «bin». Мы могли бы сделать это с помощью этой команды:

 cp app.sh __init__.sh bin/ 

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

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

Венера, инженер-программист Rockbot

В качестве альтернативы, если вы хотите скопировать несколько папок, вы должны указать папки в том же месте, где мы указали имена файлов выше. Итак, если вы хотите скопировать папки «bin» и «config» в папку «app», вы можете сделать это с помощью этой команды:

 cp bin config app 

Заключение

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

Если вы хотите узнать больше об этой команде, вы можете запустить man cp на своем терминале. Это откроет руководство по Linux о том, как использовать команду cp. Руководство довольно длинное, но оно даст вам невероятно подробную информацию об использовании команды cp.

Чтобы найти лучшие учебные ресурсы, книги и курсы по Linux, ознакомьтесь с нашим руководством How to Learn Linux. У нас есть отдельное руководство, которое вы можете использовать для изучения командной строки.

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

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

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

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

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

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

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

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

$ cp [options] [source…] [destination…]

Давайте рассмотрим пример, чтобы лучше понять командный инструмент «cp».

В домашнем каталоге создайте папку « temp » с текстовым файлом с именем « text_file1.txt » и добавьте в нее произвольное содержимое.

Скопируйте файл с тем же именем:

Чтобы скопировать каталог файлов « text_file1.txt » с тем же именем, откройте терминал и введите указанное « cp ” команда с правильным путем.

Получите путь к папке, щелкнув файл правой кнопкой мыши и перейдите к опции « Свойства » (это простой способ получить ссылку на путь).

Откроется диалоговое окно с полным путем к текстовому файлу:

Используйте этот путь с командой « cp » для копирования файла:

$ cp /home/wardah/temp/text_file1. txt /home/wardah/temp2

Эта команда скопирует « text_file1.txt » в папку « temp2 ».

Для проверки введите в терминале команду « ls »:

$ ls /home/wardah/temp2

Скопируйте файл с другим именем:

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

$ cp /home/wardah/temp/text_file1. txt /home/wardah/temp/text_file2.txt

Проверьте это с помощью команды « ls »:

$ ls /home/wardah/temp

Копирование нескольких файлов с помощью команды «cp»:

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

$ cd /home/wardah/temp

$ cp text_file1.txt text_file2.txt text_file3.txt /home/wardah/temp2

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

$ ls /home/wardah/temp2

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

Давайте проверим, как это работает:

Запустите команду « ls », чтобы проверить, сколько файлов существует в temp каталог:

$ ls /home/wardah/temp

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

$ cp /home/wardah/temp/* /home/wardah/temp2

Теперь снова запустите команду «ls», чтобы проверить, все ли файлы скопированы в каталог « temp2 »:

$ ls /home /wardah/temp2

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

Команда « rsync » — еще один универсальный инструмент Linux для синхронизации и копирования файлов и каталогов как локально, так и удаленно.

Синтаксис команды « rsync » для копирования файлов:

$ rsync [опции…] [источник…] [назначение…]

Это встроенный инструмент во многих дистрибутивах Linux. Однако, если в вашей системе его нет, установите его, выполнив следующую команду:

$ sudo apt install rsync

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

$ rsync /home/wardah/dir1/file1.txt /home/wardah/dir2/text_file.txt

Для подтверждения введите:

$ ls /home/wardah/dir2

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

$ rsync -a /home/wardah/dir1/ /home/wardah/dir2

-a » с командой « rsync » используется для рекурсивного копирования каталогов)

Вот две концепции:

Если вы добавите косую черту ( / ) к пути, содержимое исходного каталога будет скопировано в целевой каталог, как показано на рисунке:

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

$ rsync -a /home/wardah/dir /home/wardah/dir2

Приведенная выше команда скопирует каталог « dir1 » в папку « dir2 ”каталог.

Вывод:

Копирование файла или каталога — основная команда, с которой можно работать. Можно использовать его несколько раз при использовании операционной системы Linux.

В этом руководстве рассмотрены два простейших подхода: команда « cp » и команда « rsync ». Используя эти команды, мы научились копировать один файл, несколько файлов и даже копировать один каталог в другой.

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

Копирование и вставка — одно из наиболее часто используемых действий на компьютере. Хотя это легко сделать с помощью сочетаний клавиш Ctrl + C и Ctrl + V , на терминале Linux это не так просто. У вас есть несколько вариантов выполнения работы. Вот как вы можете копировать и вставлять текст, файлы и каталоги в терминал Linux.

Содержимое
  • Копирование и вставка текста
  • Копирование и вставка одного файла
  • Копирование и вставка папки и ее содержимого
  • Копирование и вставка нескольких файлов
  • Копирование и вставка всех файлов одного типа
  • Сделать копирование более интерактивным
  • Rsync vs CP
  • Переместить файл или папку
  • Часто задаваемые вопросы

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

Если вы просто хотите скопировать фрагмент текста в терминал, все, что вам нужно сделать, это выделить его мышью, а затем нажать Ctrl + Shift + C скопировать.

Чтобы вставить его туда, где находится курсор, используйте сочетание клавиш Ctrl + Shift + V .

Ярлык «Вставить» также применяется, когда вы копируете часть текста из документа Word (или любого другого приложения) и хотите вставить его в терминал. Например, вы можете скопировать команду с веб-страницы в браузере и использовать сочетание клавиш Ctrl + Shift + V , чтобы вставить ее в терминал.

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

  • Терминал Gnome — Откройте меню-гамбургер и нажмите «Настройки». Перейдите к «Ярлыкам» и прокрутите до «Изменить». Там появятся опции «Копировать» и «Вставить», готовые к настройке.
  • Konsole — перейдите в «Настройки» и нажмите «Настроить сочетания клавиш». Найдите «Копировать», настройте его для использования комбинаций клавиш, упомянутых ранее, затем сделайте то же самое для «Вставить».

Большинство других терминалов заблокируют вас в универсальной комбинации по умолчанию для копирования/вставки в консоли без возможности их настройки.

Каждый раз, когда вы хотите скопировать файл или папку в командной строке Linux, вышеуказанное сочетание клавиш не будет работать. Вы должны использовать команду cp . cp — это сокращение от слова «копия». Синтаксис тоже прост. Используйте 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 , что он работает с каталогом и должен скопировать его содержимое.

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

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

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

Вы также можете копировать несколько файлов. Командная строка 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/ 

Сделайте копирование более интерактивным

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

Прикрепив флаг -v к вашей команде, вы сообщаете cp , чтобы он предоставил вам наиболее подробный вывод о том, что он делает. 9Флаг 0018 -i предоставляет запросы на подтверждение, чтобы у вас была возможность отменить определенные операции, такие как перезапись определенных файлов.

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

Обычно флаги -v и -i доступны в большом количестве команд, общих для Linux.

Rsync vs CP

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

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

Узнайте, как использовать rsync для копирования файлов в Linux.

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

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

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

Точно так же можно переименовать файл.

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

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

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

Часто задаваемые вопросы

Лучше ли rsync, чем cp?

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

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

Почему я не могу просто использовать Ctrl+C для копирования элементов с моего терминала?

В терминальных приложениях Linux нажатие Ctrl + C на клавиатуре отправляет Сигнал SIGINT (прерывание) ядру. Это простой способ сказать Linux остановить все, что работает на этом конкретном терминале.

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

Изображение предоставлено Neron Photos на Pexels

Полезна ли эта статья?

Подпишитесь на нашу рассылку!

Наши последние учебные пособия доставляются прямо на ваш почтовый ящик

Подпишитесь на все информационные бюллетени.

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

  • Facebook
  • Твитнуть

Основы Linux: копирование, перемещение и переименование файлов и каталогов

Опубликовано: 21 июля 2022 г. | | на Алексон Оливейра (Судоер, Red Hat)

Изображение

Изображение Martin Pyško с сайта Pixabay

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

Оболочка Bash обычно является наиболее эффективным инструментом для управления файлами. В этой статье предполагается, что вы уже имеете общее представление о том, как открывать терминал Linux и вводить команды. (См. Как получить доступ к терминалу Linux, если вы хотите освежить свои знания.) Подключитесь к терминалу Linux с помощью обычной учетной записи пользователя и приготовьтесь к реорганизации.

Перейдите в свой домашний каталог и создайте новый каталог с именем mydir для упражнений. Команда для создания нового каталога mkdir :

 $ mkdir mydir
$ cd mydir/ 

Перемещение файлов и каталогов

Команда mv перемещает и каталоги, и файлы. Проверьте его опции и параметры из результатов --help ниже:

 $ mv --help
Использование: mv [ОПЦИЯ]... [-T] ИСТОЧНИК НАЗНАЧЕНИЕ
  или: mv [ВАРИАНТ]. .. ИСТОЧНИК... КАТАЛОГ
  или: mv [ОПЦИЯ]... -t ИСТОЧНИК КАТАЛОГА...
Переименуйте SOURCE в DEST или переместите SOURCE(s) в DIRECTORY.
Обязательные аргументы для длинных опций обязательны и для коротких опций.
      --backup[=CONTROL] сделать резервную копию каждого существующего целевого файла
  -b аналогично --backup, но не принимает аргумент
  -f, --force не запрашивать перед перезаписью
  -i, --interactive подсказывать перед перезаписью
  -n, --no-clobber не перезаписывать существующий файл
Если вы укажете более одного из -i, -f, -n, только последний из них вступит в силу.
      --strip-trailing-slashes удалить все завершающие косые черты из каждого ИСТОЧНИКА
                                 аргумент
  -S, --suffix=СУФФИКС переопределяет обычный суффикс резервной копии
  -t, --target-directory=КАТАЛОГ переместить все аргументы ИСТОЧНИКА в КАТАЛОГ
  -T, --no-target-directory рассматривать DEST как обычный файл
  -u, --update перемещать только тогда, когда исходный файл новее
                                 чем конечный файл или когда
                                 конечный файл отсутствует
  -v, --verbose объяснить, что делается
  -Z, --context установить контекст безопасности SELinux назначения
                                 файл к типу по умолчанию
      --help показать эту справку и выйти
      --version вывести информацию о версии и выйти
Суффикс резервной копии — «~», если он не задан параметром --suffix или SIMPLE_BACKUP_SUFFIX. 
Метод контроля версий можно выбрать с помощью параметра --backup или с помощью
переменная среды VERSION_CONTROL. Вот значения:
  нет, выключено никогда не делать резервные копии (даже если указан параметр --backup)
  пронумерованы, т делать пронумерованные резервные копии
  существующий, нулевой номер, если существуют пронумерованные резервные копии, в противном случае простой
  просто, никогда не делайте простые резервные копии 

Переименовать файлы и каталоги

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

 $ ls -l
всего 0
drwxrwxr-х. 2 локальный пользователь локальный пользователь 6 9 июня 14:57 dir1
drwxrwxr-х. 2 локальный пользователь локальный пользователь 6 9 июня 17:52 dir2
drwxrwxr-х.  2 локальный пользователь локальный пользователь 6 9 июня17:52 реж3
drwxrwxr-х. 3 локальный пользователь локальный пользователь 21 июн 9 16:57 dir4
-рв-рв-р--. 1 локальный пользователь локальный пользователь 0 9 июн 17:31 файл1
-рв-рв-р--. 1 локальный пользователь локальный пользователь 0 9 июн 17:33 файл2
-рв-рв-р--. 1 локальный пользователь локальный пользователь 0 9 июн 17:33 файл3
$ mv файл1 каталог1/
$ mv файл2 каталог2/
$ mv файл3 каталог3/
$ лс -л
всего 0
drwxrwxr-х. 2 localuser localuser 19 июн 9 17:53 dir1
drwxrwxr-х. 2 локальный пользователь локальный пользователь 19 июн 9 17:53 dir2
drwxrwxr-х. 2 localuser localuser 19 июн 9 17:53 dir3
drwxrwxr-х. 3 локальный пользователь локальный пользователь 21 июн 916:57 реж4
[mydir]$ ls -lR
.:
всего 0
drwxrwxr-х. 2 localuser localuser 19 июн 9 17:53 dir1
drwxrwxr-х. 2 локальный пользователь локальный пользователь 19 июн 9 17:53 dir2
drwxrwxr-х. 2 localuser localuser 19 июн 9 17:53 dir3
drwxrwxr-х. 3 локальный пользователь локальный пользователь 21 июн 9 16:57 dir4
. /дир1:
всего 0
-рв-рв-р--. 1 локальный пользователь локальный пользователь 0 9 июн 17:31 файл1
./дир2:
всего 0
-рв-рв-р--. 1 локальный пользователь локальный пользователь 0 9 июн 17:33 файл2
./дир3:
всего 0
-рв-рв-р--. 1 локальный пользователь локальный пользователь 0 9 июн 17:33 файл3
./дир4:
всего 0
drwxrwxr-х. 2 локальный пользователь локальный пользователь 199 июн 17:35
./каталог4/подкаталог1:
всего 0
-рв-рв-р--. 1 localuser localuser 0 9 июня 17:35 file4 

[ Улучшите свои навыки Bash. Загрузите памятку по сценариям оболочки Bash. ]

И вы можете использовать команду mv для перемещения каталогов в другие каталоги:

 $ ls -1
директор1
директор2
директор3
директор4
$ mv реж.1/ реж.2/
$ mv реж.2/ реж.3/
$ лс -1
директор3
dir4 

Каталоги dir1 и dir2 все еще существуют; вы только что переместили их. Посмотрите сами, как это выглядит:

 $ лс -R
директор3
директор4
./дир3:
директор2
файл3
. /дир3/дир2:
директор1
файл2
./дир3/дир2/дир1:
файл1
./дир4:
подкаталог1
./каталог4/подкаталог1:
file4 

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

Команда cp копирует и файлы, и каталоги. У этой команды много опций, но основной синтаксис прост. Запустите cp {источник} {назначение} для копирования из одного места (источника) в другое (назначение). Рассмотрим следующий пример:

 $ ls -1
директор3
директор4
$ cp каталог4/подкаталог1/файл4 .
$ лс -1
директор3
директор4
файл4
$ ls -R каталог4/
директор4/:
подкаталог1
каталог4/подкаталог1:
файл4 

[ Загрузите бесплатную памятку по командам Linux. ]

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

 $ cp -R dir3/ dir4/
$ лс -R
директор3
директор4
файл4
./дир3:
всего 0
директор2
файл3
./дир3/дир2:
директор1
файл2
./дир3/дир2/дир1:
файл1
./дир4:
директор3
подкаталог1
./дир4/дир3:
директор2
файл3
. /дир4/дир3/дир2:
файл2
./дир4/дир3/дир2/дир1:
файл1
./каталог4/подкаталог1:
file4 

Когда вы копируете пустые каталоги в другие каталоги, нет необходимости в -R параметр.

Еще для изучения

Для каждой команды, которую я продемонстрировал, есть много других опций, которые я пропустил для краткости.

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

Ознакомьтесь со статьями по теме Включить системного администратора

Изображение

Основы Linux: как создавать и удалять файлы и каталоги

Узнайте, как использовать команды mkdir, touch и rm для создания файлов и каталогов, а затем очищать их, когда будете готовы.

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

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