Створення жорстких і символічних зв'язків за допомогою команди ln 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Створення жорстких і символічних зв'язків за допомогою команди ln



Для створення жорстких або символічних зв'язків використовується команда ln (від link — зв'язати).

Команда ln дозволяє створювати зв'язки обох типів і зв'язувати одні файли з іншими (включаючи і каталоги). Істотна відмінність між вказаними типами зв'язків полягає в тому, що жорсткий (hard) зв'язок зв'язує безпосередньо два файли, що належать одній і тій же файловій системі. Проте ви можете використовувати символічний (symbolic) зв'язок між каталогами і файлами, який розповсюджується на різні файлові системи. Якщо ви використовуєте команду ln для створення жорсткого зв'язку, ви задаєте в командному рядку другий файл, який можете використовувати як посилання на початковий файл, як в наступному прикладі:

# cat > filel

This is filel

# ln filel file2

# ls -1 file*

-rw-r--r-- 2 bball users 14 Jan 5 13:32 filel

-rw-r--r-- 2 bball users 14 Jan 5 13:32 file2

# cat file2

This is filel

Неважко помітити, що файл file2 — це в точності те ж саме, що файл filel. Якщо ви видалите файл filel, файл file2 залишиться. При внесенні змін у файл filel, таких як додавання тексту, ці зміни відображаються і у файлі file2. Зворотне також справедливо: якщо внести зміни в file2, то і файл filel буде відповідним чином оновлений.

Хоча жорсткі зв'язки вельми корисні, вони володіють щонайменше одним істотним недоліком. Наступні приклади покликані продемонструвати, в чому саме він полягає. Спочатку створимо символічний зв'язок з використанням опції -s команди ln:

# cat >filel

This is filel

# ln -s filel file2

# ls -1 file*

-rw-r—r-- 1 bball users 14 Jan 5 13:48 filel

lrwxrwxrwx 1 bball users 5 Jan 5 13:48 file2 -> filel

Зверніть увагу на стрілку, направлену від файлу file2 до файлу filel. Ця стрілка указує на те, що файл f ile2 є символічним зв'язком з файлом filel. Зверніть увагу також на те, що довжина файлу file2 менше ніж довжина файлу filel. Відмінність символічного зв'язку від жорсткого зв'язку полягає в тому, що символічний зв'язок — це всього-навсього псевдонім початкового файлу. Тому, якщо символічний зв'язок видалити, з початковим файлом зовсім ніщо не відбудеться. Проте якщо ви видалите початковий файл, то символічний зв'язок зникне разом з ним:

# rm -f filel

# cat file2

cat: file2: No such file or directory

Оскільки початкового файлу, filel, більше не існує, ви не можете отримати доступ до його вмісту за допомогою символічного зв'язку file2. Проте символічні зв'язки все-таки володіють особливістю, яку можна розглядати як перевага в порівнянні з жорсткими зв'язками. В наступному прикладі при спробі створити жорсткий зв'язок з каталогом /usr/local/games команда In видає повідомлення про неприпустимість подібної операції і завершує роботу:

# ln /usr/local/games play

In: /usr/local/games: hard link not allowed for directory

Проте ви можете створити символічний зв'язок таким чином:

# ln -s /usr/local/games play

# ls -1 play

lrwxrwxrwx 1 bball users 16 Jan 5 14:12 play -> /usr/local/games

Тепер замість введення довгої команди на зразок

# cd /usr/local/games

ви можете використовувати більш компактну команду

# cd play

 

Контрольні питання:

1. Яка команда створює файл та виконує модифікацію дати і часу?

2. Яка команда виконує видалення файлів. З якими опціями вона працює?

3. Яким чином за допомогою команди rm можна видаляти каталоги?

4. Яка команда створює каталоги. З якими опціями вона працює?

5. Яким чином можна створити ієрархію каталогів?

6. Яка команда виконує видалення каталогів та ієрархії каталогів. З якими опціями вона працює?

7. Чи можна видаляти не пусті каталоги?

8. Яка команда виконує перейменування файлів та каталогів?

9. Яка команда виконує копіювання файлів та каталогів. З якими опціями вона працює?

10. Яким чином реалізуються символічні та жорсткі зв’язки. Для чого вони призначені?

 

Література:

1. Болл Билл Освой самостоятельно Linux за 24 часа, 2-е издание.: Пер. с англ.: Уч. пос. – М.: Издательский дом «Вильямс», 2000. – 480 с.: ил. – Парал. тит. англ., стор. 98-108.

 

Лабораторна робота № 4

Тема: Файлова система: команди пошуку та роботи з архівами.

Мета: Засвоїти та набути навички роботи з командами пошуку та роботи з архівами у файловій системі.

Завдання:

1. Виконати пошук файлів, ім’я яких містить літери від а до m:

- в загальному випадку;

- на початку імені;

- в кінці імені;

- в середині імені;

- з обох сторін.

2. Виконати пошук файлів, імена яких містять символ «*».

3. Виконати пошук тексту «and» у файлі ABC.txt. (Використати 3 команди)

4. Виконати пошук тексту «and» у файлі ABC.txt з нумерацією рядків, що містить слово для пошуку.

5. У файлах Text.txt та File.txt знайти слова «hello», «or», «object», «name», з нумерацією рядків, що містить слова для пошуку.

6. Створити каталог RTC, що містить 2 файли та 3 підкаталоги RTC1, RTC2, RTC3. Кожен підкаталог містить по 3 файли. Переглянути дерево створеного каталогу.

7. Створити tar-архів та переглянути його наявність у системі.

8. Створити tar-архів з вибіркових елементів.

9. Створити tar-архів з відображенням процесу роботи.

10. Вивести вміст створеного архіву з восьмого завдання.

11. Розпакувати створений архів.

12. Розпакувати створений архів з опитуванням.

13. Стиснути файл (архів) за допомогою команд:

- gzip із завданням власного розширення;

- compress.

14. Розпакувати архіви, створені у попередньому завданні.

Обладнання та матеріали: ПК, ОС Linux, методичні вказівки до лабораторних робіт.

Хід роботи:

1. Ознайомитись з теоретичними відомостями.

2. Увімкнути комп’ютер з операційною системою Linux, якщо вона там не встановлена, то встановіть її.

3. Виконати дії, зазначені в завданні, для пошуку файлу.

4. Виконати дії, зазначені в завданні, для пошуку заданого тексту у файлах.

5. Виконати дії, зазначені в завданні, для створення та розпакування архівів.

6. Оформити та захистити звіт лабораторної роботи.

Теоретичні відомості

Регулярні вирази (regular expressions) — це шаблони, що використовують спеціальний синтаксис для завдання відповідності рядків (звичайно — в текстових файлах, якщо тільки ви не здійснюєте пошук по іменах файлів). Існують також розширені регулярні вирази, які можуть використовувати в пошукових шаблонах додаткові оператори.

Використовуючи лише невелику підмножину символів підстановки, ви можете побудувати нескінченне число регулярних виразів. В таблиці приведений короткий перелік деяких з цих символів. В попередніх прикладах ви познайомилися щонайменше з одним з таких символів — зірочкою (*).

Вираз Відповідність

* Будь-який символ

? або. Окремий символ

(х) Попередній символ, х раз, що повторюється

{х,у} Попередній символ, що повторюється щонайменше х, але не більш у разів

{х} Попередній символ, що повторюється щонайменше х раз

(ххх)¦ (XXX) Рядок ххх або XXX

[ххх] або [х-х] Будь-який з символів із заданого списку ххх або діапазону х-х

[XYZ]+ X, У або Z щонайменше один раз

\х Символ, такий як? або /

^шаблон шаблон на початку рядка

$шаблон шаблон в кінці рядка

 

 

Символ зірочки корисний для виявлення відповідності довільному символу. Наприклад, якщо вам необхідно знайти в каталозі всі текстові файли з розширенням. txt, ви можете використовувати наступний вираз:

# ls *.txt

14days.txt 96hours.txt datalog.txt datebook.txt day67.txt

Але припустимо, що вам потрібен перелік всіх файлів вашого каталога, імена яких містять цифру. Ви можете "збудувати" послідовність з декількох критеріїв пошуку для команди ls таким чином:

# ls * [0123456789]*

000lfile.0009 32days.msg day67.txt

08100097.db 96hours.txt message.76

14days.txt backup00l.file phonelog.111597

Тепер команда пошуку відображає всі файли, імена яких містять щонайменше одну цифру, оскільки ви визначили в пошуковому шаблоні список символів, в даному випадку — цифр. Ви можете також використовувати "стенографічну форму" регулярного виразу, щоб побудувати вираз, що виконує ту ж функцію пошуку, що і попереднє, наприклад:

# ls *[0-9]*

0001file.009 32days.msg day67.txt

08100097.db 96hours.txt message.76

14days.txt backup00l.file phonelog.111597

Спосіб завдання символів шаблона у виразі грає надзвичайно важливу роль. Якщо вам, наприклад, потрібен список тільки тих файлів, імена яких закінчуються цифрою, ви можете використовувати наступний вираз:

# ls *[0-9]

000lfile.0009 message.76 phonelog.111597

Якщо вам потрібен список тільки тих файлів, імена яких починаються з цифри, ви можете використовувати такий вираз:

# ls [0-9]*

000lfile.0009 08100097.db 14days.txt 32days.msg 96hours.txt

Яким чином отримати список тих файлів, які містять цифри тільки всередині або тільки на обох кінцях імені? Спробуйте задати наступний вираз:

# ls *[-a-z][0-9]*

Backup00l.file day67.txt

# ls [0-9]*[а-z]*[0-9]
000lfile.0009

І нарешті, яким чином встановити відповідність шаблону, якщо шаблон, по якому здійснюється пошук, сам включає символ відповідності? Дуже просто! Щоб відмінити (escape) символ шаблона, використовуйте зворотний слеш, наприклад:

# ls */?*

cathy?.message



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 242; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.134.104.173 (0.024 с.)