Практическая работа по символическим ссылкам:
cd # в домашний каталог
mkdir -p standards/{civil,mechanical} # создать структуру необходимых каталогов
cd standards/civil # в каталог строительных стандартов
touch document1.txt # создаем новый файл со стандартом
echo "some text" > document1.txt # содержимое...
man ln # для выхода нажать "q"; это справка по "ln", почитайте
cd ../mechanical/ # в каталог машиностроительных стандартов
ln -s ../civil/document1.txt document1.txt # создаем симв. ссылку
# с таким же именем
ls -l # посмотрим, что вышло
file document1.txt # что за файл "document.txt" в текущем каталоге?
cat document1.txt # просмотр исходного файла по ссылке
echo "additional text" >> document1.txt # редактирование файла по ссылке
cat ../civil/document1.txt # видно, что оригинал изменился
rm -f ../civil/document1.txt # удаление оригинального документа
ls -l # а ссылка осталась
cat document1.txt # ошибка, т.к. ссылка "висячая" (ссылается на
# несуществующий файл)
echo "new text" >> document1.txt # запись в файл по ссылке;
# будет создан новый файл-оригинал -
# ~/standards/civil/document1.txt
cat document1.txt # переход по ссылке, видно что файл-оригинал существует
cp document1.txt ../document1.txt # копируем ссылку в каталог "standards"
cd ../ # переход в каталог "standards"
ls -l # видно, что скопирован файл-оригинал
file document1.txt # ...не ссылка, а настоящий файл
Практическая работа по жестким ссылкам:
# в той же иерархии каталогов, что была создана в работе по симв. ссылкам
# /home/joe/standards
cd civil
echo "123456" > myfile
ls -i myfile # уникальный номер созданного файла
ls -l myfile # число 1 указывает, что у файла одна жесткая
# ссылка
ln myfile ../mechanical/myfile # создаем жесткую ссылку
# пусть имена файлов будут одинаковые
cd ../mechanical/
ls -i myfile # уникальные номера совпадают
ls -l myfile # видим, что у файла уже 2 жестких ссылки
file myfile # при чем файловая система видет напрямую файл
# а не ссылку (как при симв. ссылке)
cp myfile ../myfile # скопируем в каталог standards
cd ../
ls -il myfile # у скопированного файла уже другой уникальный
# номер, и счетчик ссылок – 1, т.е. это новый
# файл а не жесткая ссылка на созданный нами
rm -f civil/myfile # удалим созданный нами в самом начале файл
cd mechanical/
ls -il myfile # количество ссылок стало 1, но номер тот же
# в той же иерархии каталогов, что была создана в работе по симв. ссылкам
# /home/joe/standards
cd civil
echo "123456" > myfile
ls -i myfile # уникальный номер созданного файла
ls -l myfile # число 1 указывает, что у файла одна жесткая
# ссылка
ln myfile ../mechanical/myfile # создаем жесткую ссылку
# пусть имена файлов будут одинаковые
cd ../mechanical/
ls -i myfile # уникальные номера совпадают
ls -l myfile # видим, что у файла уже 2 жестких ссылки
file myfile # при чем файловая система видет напрямую файл
# а не ссылку (как при симв. ссылке)
cp myfile ../myfile # скопируем в каталог standards
cd ../
ls -il myfile # у скопированного файла уже другой уникальный
# номер, и счетчик ссылок – 1, т.е. это новый
# файл а не жесткая ссылка на созданный нами
rm -f civil/myfile # удалим созданный нами в самом начале файл
cd mechanical/
ls -il myfile # количество ссылок стало 1, но номер тот же
Комментариев нет:
Отправить комментарий