ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как скопировать каталог в командной строке Linux [Совет для начинающего]

Как скопировать каталог в командной строке Linux [Совет для начинающего]

Если вы новичок в командной строке Linux, у вас, вероятно, есть этот вопрос: как мне скопировать каталог и файлы в нем в другой каталог в командной строке Linux?

Резюме

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

cp -r source_directory destination_directory

 

Вы, наверное, уже знаете, что вы можете использовать команду cp для копирования файлов в Linux. Знаете ли вы, что вы можете использовать ту же команду cp для копирования папки в командной строке Linux?

Хах! Вы уже попробовали это и, возможно, получили эту ошибку:

cp: -r not specified; omitting directory 'test_dir'

 

Позвольте нам показать вам кое-что о копировании каталога в Linux.

 

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

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

Все, что вам нужно сделать, это использовать команду следующим образом:

cp -r source_directory destination_directory

 

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

Опция -r позволяет рекурсивную опцию. Это означает, что все содержимое каталога, включая его собственные подкаталоги, все содержимое каталога будет скопировано в место назначения.

 

Несколько замечаний по поводу копирования каталога в Linux

Вот несколько вещей, чтобы отметить и советы о копировании папок.

1. Если каталог назначения не существует, он будет создан до одного уровня (объяснение в следующем разделе). Однако теперь он будет копировать содержимое исходного каталога, а не самого исходного каталога.

Например, если вы делаете это:

cp -r source_directory non_existing_directory

 

Non_existing_directory будет создан с содержимым source_directory, но внутри него не будет source_directory. Просто файлы source_directory будут скопированы. Это было бы, как non_existing_directory будет точной копией source_directory.

destroyer@andreyex:~ $ ls 
test_dir 
destroyer@andreyex:~ $ cp -r test_dir new_dir 
destroyer@andreyex:~ $ tree 
. 
├── new_dir 
│ ├── c.xyz 
│ ├── myzip1.zip 
│ └── myzip2.zip 
└── test_dir 
     ├── c.xyz 
     ├── myzip1.zip 
     └── myzip2.zip 
2 директории, 6 файлов

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

Например, если вы попытаетесь использовать cp -r source_dir dir1/dir2/dir3, но dir2 и dir3 не существуют, это не создаст структуру вложенных каталогов, и команда не будет выполнена.

3. Последний совет, чтобы быть кратким. Если вы используете опцию -a вместе с опцией -r, он сохранит первоначальную информацию о файле, такие как права доступа к файлу, файл временных меток и т.д. Он будет архивировать каталог на новое место, а не создавать его заново.

 

Итог

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

Exit mobile version