Если вы новичок в командной строке 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. Если у вас есть вопросы или предложения, пожалуйста, не стесняйтесь оставлять комментарии.