Linux Робота з каталогами Посилання

Реферат на тему:

Linux. Робота з каталогами. Посилання

Команди chown і chgrp

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

[root]# chown vasja імені-файлу

[root]# chgrp usersgrp імені-файлу

Команда mkdir

Команда mkdir дозволяє створити підкаталог у поточному каталозі. Як аргумент цій команді треба дати ім'я створюваного каталогу. В знову створеному каталозі автоматично створюються два записи: . (посилання на цей самий каталог) і .. (посилання на батьківський каталог). Щоб створити підкаталог, ви повинні мати в поточному каталозі право запису. Можна створити підкаталог не в поточному, а в якомусь іншому каталозі, але тоді необхідно вказати шлях до створюваного каталогу:

[user]$ mkdir /home/kos/book/glava5/part1

Команда mkdir може використовуватися з наступними опціями:

-m mode — задає режим доступу для нового каталогу (наприклад, -m 755);

-p — створювати зазначені проміжні каталоги (якщо вони не існують).

Команда cat

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

[user]$ cat file1 > file2

Власне, первісне призначення команди cat саме і припускало перенапрямок висновку, тому що ця команда створена для конкатенації, тобто  об'єднання декількох файлів в один:

[user]$ cat file1 file2 ... file > new-file

Саме можливості перенапрямку введення і висновку цієї команди і використовуються для створення нових файлів. Для цього на вхід команди cat направляють дані зі стандартного введення (тобто  з клавіатури), а висновок команди — у новий файл:

[user]$ cat > newfile

Після того, як ви надрукуєте усе, що хочете, натисніть комбінацію клавіш <Ctrl>+<D> чи <Ctrl>+<C>, і усе, що ви ввели, буде записане в newfile. Звичайно, у такий спосіб створюються, в основному, короткі текстові файли.

Команда cp

Хоча для копіювання файлів іноді користаються командою cat, але в Linux існує для цього спеціальна команда cp. Її можна застосовувати в одній із двох форм:

[user]$ cp [options] source destination

[user]$ cp [options] source_directory new_directory

У першому випадку чи файл каталог source копіюється, відповідно, у чи файл каталог destination, а в другому випадку файли, що містяться в каталозі source_directory копіюються в каталог new_directory. Для копіювання треба мати права на читання файлів, що копіюються, і права на запис у каталог, у який виробляється копіювання.

Якщо в якості цільового вказується існуючий файл, то його вміст буде затерто, тому при копіюванні треба дотримувати обережності. Утім, можна використовувати команду cp з опцією -i, тоді перед перезаписом існуючого файлу буде запитуватися підтвердження (дуже рекомендую вам завжди використовувати цю опцію!).

У команди cp є ще кілька корисних опцій (табл. 1).

Таблиця 1. Основні опції команди cd.

Опція

Значення

-p

Зберігає час модифікації файлу і максимально можливі повноваження. Без цієї опції для нового файлу задаються повноваження, що відповідають повноваженням користувача, що запустив команду

-R чи -r 

Якщо source — каталог, то копіюється як він, так і усі вхідні в нього підкаталоги, тобто  зберігається вихідна форма дерева каталогів

-d

Якщо задати цю опцію, то символічні посилання будуть залишатися посиланнями (а інакше замість посилання копіюється файл, на який дається посилання)

-f

Перезаписувати файли при копіюванні (якщо такі вже є) без додаткових попереджень



Команда mv

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

Команда mv може використовуватися не тільки для переміщення, але і для перейменування файлів і каталогів (тобто  переміщення їх усередині одного каталогу). Для цього треба просто задати як аргументи старе і нове ім'я файлу:

[user]$ mv oldname newname

Але врахуйте, що команда mv не дозволяє перейменувати відразу кілька файлів (використовуючи шаблон імені), так що команда mv *.xxx *.yyy не буде працювати.

При використанні команди mv, також як і при використанні cp, не забувайте застосовувати опцію -i для того, щоб одержати попередження, коли файл буде перезаписуватися.

Команди rm і rmdir

Для видалення непотрібних файлів і каталогів у Linux служать команди rm (видаляє файли) і rmdir (видаляє порожній каталог) . Для того, щоб скористався цими командами, ви повинні мати право запису в каталозі, у якому розташовані файли, що видаляються, чи каталоги. При цьому повноваження на зміну самих файлів не обов'язкові. Якщо хочете перед видаленням файлу одержати додатковий запит на підтвердження операції, використовуйте опцію -i.

Якщо ви спробуєте використовувати команду rm (без всяких опцій) для видалення каталогу, то буде видане повідомлення, що це каталог, і видалення не відбудеться. Для видалення каталогу треба видалити в ньому усі файли, після чого видалити сам каталог за допомогою команди rmdir. Однак можна видалити і непорожній каталог із усіма вхідними в нього підкаталогами і файлами, якщо використовувати команду rm з опцією -r.

Якщо ви дасте команду rm *, то видалите усі файли в поточному каталозі. Підкаталоги при цьому не видаляться. Для видалення як файлів, так і підкаталогів поточного каталогу треба теж скористатися опцією -r. Однак завжди помнете, що в Linux немає команди відновлення файлів після їхнього видалення (навіть якщо ви спохватилися відразу ж після помилкового видалення чи файлу каталогу)! Так що двічі подумайте до видалення чого-небудь і не зневажайте опцією -i.

Команди more і less

Команда cat дозволяє вивести на стандартний висновок (на екран) уміст будь-якого файлу, однак вона використовується для цих цілей дуже рідко, хіба що для висновку дуже невеликих по обсязі файлів. Справа в тому, що вміст великого файлу миттєво проскакує на екрані, і користувач бачить тільки останні рядки файлу. Тому cat використовується в основному по її прямому призначенню — для конкатенації файлів, а для перегляду змісту файлів (звичайно, текстових) використовуються команди more і less (чи текстові редактори).

Команда-фільтр more виводить зміст файлу на екран окремими сторінками, розміром саме в цілий екран. Для того, щоб побачити наступну сторінку, треба натиснути на клавішу пробілу. Натискання на клавішу <Enter> приводить до зсуву на один рядок. Крім клавіш пробілу і <Enter> у режимі паузи ще деякі клавіші діють як керуючі (наприклад, клавіша <B> повертає вас на один екран назад), але ми тут не будемо приводити повного їхнього переліку, як і переліку опцій команди. Вам для початку треба ще тільки запам'ятати, що вийти з режиму перегляду можна за допомогою клавіші <Q>, тому що якщо ви цього не знаєте, те вам доведеться довго і нудно натискати пробіл, поки ви не доберетеся до кінця довгого файлу. Про всі опції команди more ви можете прочитати в інтерактивному керівництві man чи info.

Утиліта less, розроблена в рамках проекту GNU, містить усі функції і команди керування висновком, що маються в програмі more, і деякі додаткові, наприклад, дозволяє використовувати клавіші керування курсором (<Стрілка нагору>, <Стрільця вниз>, <PgUp>, <PgDown>) для переміщення по тексту. Згадаєте, ми вже говорили про це, коли розглядали інтерактивну підказку man.

Команди more і less дозволяють робити пошук підрядків у файлі, що переглядається, причому команда less дозволяє робити пошук як у прямому, так і в зворотному напрямку. Для організації пошуку рядка символів string треба набрати в командному рядку програми в нижній частині екрана (там, де двокрапка) /string. Якщо шуканий рядок буде знайдена, буде відображений відповідний шматок тексту, причому знайдений рядок буде знаходитися в самому верху екрана.

Команда find і символи шаблонів для імен файлів

Ще однією часто використовуваною командою для роботи з файлами в Linux є команда пошуку потрібного файлу find. Команда find може шукати файли по імені, розміру, даті чи створення модифікації і деяким іншим критеріям.

Загальний синтаксис команди find має наступний вигляд:

find [список_каталогів] критерій_пошуку

Параметр "список_каталогів" визначає, де шукати потрібний файл. Найпростіше задати як початковий каталог пошуку кореневий каталог /, однак, у такому випадку пошук може затягтися дуже надовго, тому що буде проглядатися вся структура каталогів, включаючи змонтовані файлові системи (у тому числі мережні, якщо такі є). Можна скоротити обсяг пошуку, якщо задати замість одного кореневого каталогу список з декількох каталогів (природно, тих, у яких може знаходитися шуканий файл):

[user]$ find /usr/share/doc /usr/doc /usr/locale/doc -name instr.txt

Початком "критерію_пошуку", що визначає, що саме повинна шукати програма find, вважається перший аргумент, що починається на "-", "(", ")"', "," чи "!". Всі аргументи, що передують "критерію_пошуку", трактуються як імена каталогів, у яких треба робити пошук. Якщо не зазначено жодного шляху, пошук виробляється тільки в поточному каталозі і його підкаталогах.

Найчастіше пошук проводиться по іменах файлів, як це показано в попередньому прикладі, тобто  "критерій_пошуку" задається як "-name ім'я_файлу". Замість опції -name можна використовувати опцію -path, тоді команда буде шукати збігу в повному імені файлу, із указівкою шляху. Наприклад, команда

[user]$ find . -path './sr*sc'

знайде в поточному каталозі підкаталог './src/misc'. Замість повного імені чи файлу каталогу в цьому прикладі використаний так називаний "шаблон імені". Оскільки шаблони імен файлів можуть використовуватися не тільки з командою find, але і з багатьма іншими командами (включаючи вже розглянуті команди chmod, chown, chgrp, cp, rm, cat, mv), те правилам складання шаблонів варто приділити деяка увага.

Найчастіше шаблони імен файлів будуються за допомогою спеціальних символів "*" і "?". Значок "*" використовується для заміни довільного рядка символів. У Linux

"*" — відповідає усім файлам, за винятком схованих; 

".*" — відповідає всім схованим файлам (але також поточному каталогу "." і каталогу рівнем вище "..": не забувайте про цьому!); 

"*.*" — відповідає тільки тим файлам і каталогам, що мають "." у середині імені, чи закінчуються на крапку; 

"p*r" — відповідає і "peter" і "piper"; 

"*c*" — відповідає і "picked" і "peck". 

Значок ? заміняє один довільний символ, тому index?.htm буде відповідати іменам index0.htm, index5.htm і indexa.htm.

Крім "*" і "?" у Linux при завданні шаблонів імен можна використовувати квадратні дужки [], у яких дається або список можливих символів, або інтервал, у який повинні попадати можливі символи. Наприклад, [abc]* відповідає всім іменам файлів, що починається з a, b, c; *[I-N1-3] відповідає файлам, імена яких закінчуються на I, J, K, L, M, N, 1, 2, 3.