Читать книгу 📗 "UNIX — универсальная среда программирования - Керниган Брайан Уилсон"
Предостережение тем, кто слишком торопится: после удаления последней связи данные становятся недоступными. Удаленные файлы попадают скорее в топку, чем в мусорную корзину, и нет средства возродить их из пепла. (Слабая надежда на возрождение все-таки есть. В больших системах UNIX есть рутинная функция дублирования, которая периодически копирует изменяемые файлы в какое-нибудь надежное место типа магнитной ленты, откуда их можно извлечь. Для собственного успокоения вам следует знать, какой объем дублирования обеспечивает ваша система. Если нет ничего, будьте бдительны — любые неполадки с дисками могут обернуться катастрофой.)
Связи файла удобны, если два пользователя совместно работают с ним, но иногда нужна на самом деле отдельная копия — другой файл с той же информацией. Например, вы можете скопировать документ до внесения в него существенных изменений, так что можно будет восстановить оригинал, если вас не устроят эти изменения. Здесь не поможет установление связи, так как при изменении данных обе связи будут ссылаться на измененный файл. Копирует файлы команда
cp$ cp junk copyofjunk$ ls -li total 315850 -rw-rw-rw- 1 you 2 Sep 27 13:13 copyofjunk15768 -rw-rw-rw- 1 you 2 Sep 27 12:37 junk15274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes$Индексы файлов
junkcopyofjunk$ chmod -w copyofjunk $ ls -li total 315850 -r--r--r-- 1 you 2 Sep 27 13:13 copyofjunk15768 -rw-rw-rw- 1 you 2 Sep 27 12:37 junk15274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes$ rm copyofjunkrm: copyofjunk 444 mode n $ date > junk$ ls -li total 315850 -r--r--r-- 1 you 2 Sep 27 13:13 copyofjunk15768 -rw-rw-rw- 1 you 29 Sep 27 13:16 junk15274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes$ rm copyofjunkrm: copyofjunk 444 mode y $ ls -li total 215768 -rw-rw-rw- 1 you 29 Sep 27 13:16 junk15274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes$Изменение копии файла или ее удаление не оказывает действия на оригинал. Обратите внимание на то, что, поскольку у файла
copyofjunkЕсть еще одна команда общего назначения, управляющая файлами, —
mvcpln$ mv junk sameoldjunk $ ls -li total 215274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes15768 -rw-rw-rw- 1 you 29 Sep 27 13:16 sameoldjunk$sameoldjunkjunkВсе описанные выше манипуляции с файлами происходили в одном каталоге, однако команды применяются и в других каталогах. Команда
lnmvcp$ mvcpfile1 file2 ... directoryЗдесь показана пересылка (или копирование) одного или нескольких файлов в каталог, который является последним аргументом. Связи или копии файлов получаются под теми же именами. Например, если вы хотите "набить руку" в работе с редактором, то можете начать с
$ cp /usr/src/cmd/ed.с .получив свою копию исходного текста редактора для экспериментов. Осваивая интерпретатор
shell$ mkdir sh$ cp /usr/src/cmd/sh/* shи команда
cpshellsh/usr/src/cmd/shcplnmvcplnПочему команда
ls -lrecipesПодсказка: попробуйте ввести
$ ls -ld /usr/youЧем эта информация полезна?
В чем состоит разница между
$ mv junk junk1и
$ cp junk junk1$ rm junkПодсказка: установите связь с
junkКоманда
cpcprcpcpcp