Копирование файлов и каталогов является одной из основных задач и пользователям Linux стоит знать, как делать это в терминале. Это знание позволяет перемещать файлы независимо от того, находитесь ли вы непосредственно за своим рабочим ПК или подключены к нему удаленно через SSH.
Как скопировать один файл в Linux
Давайте начнем с простого копирования одного файла. Синтаксис команды структурирован следующим образом.
cp <адрес и имя файла для копирования > < адрес и имя файла после копирования >
- Создайте новый файл с именем test1.txt.
touch test1.txt
- Выведите команду ls содержимое каталога, чтобы проверить, создан ли файл. Теперь вы должны увидеть файл test1.txt.
- Скопируйте файл test1.txt и переименуйте его в test2.txt. При этом элемент будет скопирован в тот же каталог, что и исходный, но в новый файл.
cp test1.txt test2.txt
- Выведите командой LS содержимое каталога, чтобы проверить, был ли файл скопирован и переименован. Вы должны увидеть, что исходный файл test1.txt указан и скопирован файл test2.txt указан.
Как скопировать каталог в Linux
Давайте рассмотрим аналогичный пример, чтобы показать, что команду cp можно использовать для копирования каталога с помощью аргумента-r . Хотя в качестве примера мы использовали пустой каталог, содержимое каталога также будет скопировано в новый каталог с использованием этого аргумента.
- Создайте пустой каталог в вашем домашнем каталоге.
mkdir test_directory
- Скопируйте и переименуйте новый каталог.
cp -r test_directory test_directory_2
- Выведите команду ls содержимое каталога, чтобы убедиться, что скопированный каталог создан. Вы должны увидеть в списке каталоги test_directory и test_directory_2.
Как скопировать файлы в другое место в Linux
В следующем примере рассмотрим копирование файла в другое место.
- Создайте пустой каталог в вашем домашнем каталоге.
mkdir test_directory
- Создайте тестовый файл в своем домашнем каталоге.
touch test1.txt
- Скопируйте тестовый файл из домашней директории в тестовую директорию. Это скопирует test1.txt из домашнего каталога в test_directory.
cp test1.txt каталог_тестов
- Проверьте правильность копирования файла, изменив каталог на test_directory и выведя его содержимое.
cd test_directory
ls
Как копировать файлы, каталоги и с переименованием
Если вы знаете местоположение файла и целевое местоположение, в которое вы хотите скопировать файл, вам не нужно переходить непосредственно в каталоги, и вы можете запустить команду cp из домашнего каталога. Вот пример того, как это можно сделать.
- Создайте 2 пустых каталога. В домашнем каталоге выполните следующую команду, чтобы создать два новых каталога.
mkdir folder1 folder2
- Перейдите в папку 1 и создайте тестовый файл с именем test1.txt.
cd folder1
touch test1.txt
- Вернитесь в домашний каталог.
cd
- Скопируйте и переименуйте тестовый файл из домашнего каталога. Мы можем предоставить команде cp имя и расположение целевого файла для копирования и куда копировать файл, переименовав его в test2.txt по пути.
cp folder1/test1.txt folder2/test2.txt
- Проверьте правильность копирования файла, изменив каталог на folder2 и перечислив содержимое. Используйте cd для изменения каталога и ls для проверки правильности копирования файла. Вы должны увидеть test2.txt список внутри папки 2 .
cd folder2
ls
Как скопировать файл в родительский каталог
При перемещении по каталогам вам может потребоваться время от времени копировать файл в родительский каталог текущего местоположения. Этого можно достичь без необходимости вводить длинные расположения каталогов в команду, используя .. для таргетинга на родительский каталог. Вот как.
- Создайте тестовый каталог, используя mkdir.
mkdir test_directory
- Переместитесь в test_directory.
cd test_directory
- Создайте тестовый файл внутри директории test_directory.
touch test1.txt
- Скопируйте test1.txt в родительский каталог. Здесь мы просто добавляем .. в команду cp, чтобы создать копию test1.txt в родительский каталог текущего местоположения.
cp test1.txt ..
- Перейдите в родительский каталог и проверьте, был ли скопирован файл. Вы должны увидеть, что test1.txt теперь указан в этом каталоге.
cd
ls