Приветствую Вас Гость | RSS

Уже всё СкаченО

Воскресенье, 27.07.2025, 20.23.41
Главная » Статьи » Основы UNIX » Основы операционной системы UNIX

Копирование файлов
Команда cp копирует исходный файл в целевой файл или каталог. Она имеет следующий синтаксис:
cp [-p] исходный целевой
cp [-r] [-p] исходный... каталог 

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

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

Команда cp поддерживает следующие основные опции:

сохраняет информацию о владельце, по возможности - права доступа и времена доступа для нового файла;

-r
копирует рекурсивно, включая подкаталоги.

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

Рассмотрим ряд простых примеров копирования. Вот как, независимо от типа, копируется в каталог несколько файлов:
[kravchuk@arturo 16:53:35 /tmp]$ mkdir d1
[kravchuk@arturo 16:53:37 /tmp]$ rm f*
[kravchuk@arturo 16:54:08 /tmp]$ ls >f1.txt
[kravchuk@arturo 16:54:24 /tmp]$ ln f1.txt f2.txt
[kravchuk@arturo 16:54:39 /tmp]$ ln -s f1.txt f3.txt
[kravchuk@arturo 16:54:45 /tmp]$ cp f1.txt f2.txt f3.txt d1
[kravchuk@arturo 16:54:58 /tmp]$ ls -l d1
total 24
-rw-r--r-- 1 kravchuk 50 639 Мар 26 16:54 f1.txt
-rw-r--r-- 1 kravchuk 50 639 Мар 26 16:54 f2.txt
-rw-r--r-- 1 kravchuk 50 639 Мар 26 16:54 f3.txt

Вот пример обычного копирования файлов "один в один":
[kravchuk@arturo 16:55:22 /tmp]$ cp f1.txt f5.txt
[kravchuk@arturo 16:55:29 /tmp]$ ls -l f*.txt
-rw-r--r-- 2 kravchuk 50 639 Мар 26 16:54 f1.txt
-rw-r--r-- 2 kravchuk 50 639 Мар 26 16:54 f2.txt
lrwxrwxrwx 1 kravchuk 50 6 Мар 26 16:54 f3.txt -> f1.txt
-rw-r--r-- 1 kravchuk 50 639 Мар 26 16:55 f5.txt

Рекурсивное копирование:
[kravchuk@arturo 16:55:34 /tmp]$ cp -r d1 d2
[kravchuk@arturo 16:56:47 /tmp]$ ls -l d2
total 24
-rw-r--r-- 1 kravchuk 50 639 Мар 26 16:56 f1.txt
-rw-r--r-- 1 kravchuk 50 639 Мар 26 16:56 f2.txt
-rw-r--r-- 1 kravchuk 50 639 Мар 26 16:56 f3.txt

Копирование файлов, имена которых начинаются с дефиса:
[kravchuk@arturo 16:56:50 /tmp]$ ls > -1
[kravchuk@arturo 16:58:44 /tmp]$ cp -1 1.txt
cp: illegal option -- 1
cp: Insufficient arguments (1)
Usage: cp [-f] [-i] [-p] f1 f2
  cp [-f] [-i] [-p] f1 ... fn d1
  cp -r|R [-f] [-i] [-p] d1 ... dn-1 dn
[kravchuk@arturo 16:58:48 /tmp]$ cp -- -1 1.txt
[kravchuk@arturo 16:58:53 /tmp]$ ls -l ?.txt
-rw-r--r-- 1 kravchuk 50 666 Мар 26 16:58 1.txt

Категория: Основы операционной системы UNIX | Добавил: Fishing (12.10.2009)
Просмотров: 420 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]