Igorka лекція №7 - регулярні файли і лінки
Правила іменування файлів. Перше, що необхідно чітко усвідомити і запам'ятати: Linux (на відміну від Windows) в іменах файлів враховує регістр букв. Тобто Test, test, tEst, TEST - це все будуть різні файли. Друга відмінна (від Windows) особливість, це розширення файлу. У Linux його просто немає. Точка в імені файлу це такий же символ як і інші. Створюючи командою touch файли з іменами test.txt, test.doc або test.jpg ми все одно створимо текстовий файл. Розширення більше потрібні для кроссплатформенних додатків, щоб ті знаходили "свої" файли.
Дуже важливим є питання які символи можна використовувати для імен файлів, а які не можна. Цьому питанню можна було б приділити пів-лекції, так як існує досить багато варіантів коли ті чи інші символи можна або не можна використовувати. Я пропоную запам'ятати наступне: в іменах файлів завжди можна використовувати такі символи: цифри, букви (краще латиницю), точка, знак підкреслення. Набору цих символів цілком достатньо, щоб називати ваші файли. Тому я навмисно не буду вказувати які символи використовувати не можна. Просто пам'ятайте які можна і використовуйте їх. Цікаві можуть знайти додаткову інформацію в Інтернеті. Довжина імені файлу 255 байт.
Для того щоб перейменувати або перенести файл існує команда mv (скорочено від move). Ось кілька прикладів використання цієї команди:
mv test.txt text.tst - перейменування файлу test.txt в text.tst в поточному каталозі.
mv / home / igor / docs / test / home / igor / docs / text - перейменування файлу test в каталозі / home / igor / docs /
mv test1.txt ./docs/ - перенести файл test1.txt в каталог / docs /
Прийшов час пояснити, що позначає точка в наведених прикладах. Якщо ви для будь-якого каталогу виконайте команду ls -a (ключ а дозволяє відобразити приховані файли), то завжди вгорі побачите два символу:. - точка і .. - дві поспіль йдуть точки. Це теж назви каталогів. Точка позначає поточний каталог, а дві точки позначає батьківський каталог. Ви можете виконати команду ls. і подивитися список файлів батьківського каталогу для поточного. Для переміщення по каталогам використовується команда cd. Набравши команду cd / boot / grub / ви переміститеся в каталог grub. який знаходяться в каталозі boot. За командою cd. . ви перейдете батьківський для каталог для поточного, тобто в boot. Таким чином можна по команді cd. переміщатися вгору по дереву файлової системи. Щоб перейти в свій домашній каталог потрібно набрати команду cd
( "Тильда" - означає домашній каталог). Перейдіть тепер в каталог / usr (cd / usr /). Виконайте команду ls. В каталозі серед інших присутній каталог / bin. Як подивитися його вміст? Набравши, ls / bin - ви відобразіть вміст каталогу / bin. який знаходиться в корені операційної системи. Потрібно або вказати повний шлях: ls / usr / bin / або написати такий спосіб ls ./bin/. Якби не було цих спец-імен, то команду cp ./docs/test1.txt. довелося б писати наступним чином: cp /home/igor/docs/test1.txt / home / igor /.
Тепер давайте розглянемо як операції видалення, копіювання і переміщення можна виконувати для групи файлів. Для цього необхідно використовувати символи групових операцій. Створіть у себе в домашньому каталозі, підкаталог temp (cd
; mkdir temp), перейдіть в нього (cd
/ Temp /) і створіть кілька файлів: touch file1.txt file2.txt file3.txt; touch file1.jpg file2.jpg file3.jpg; touch abcd asdf azxs adcd.
ls * .jpg - в результаті будуть відображені всі файли які закінчуються на .jpg. Результат: file1.jpg file2.jpg file3.jpg.
ls file * - будуть відображені всі файли, які починаються на file. Результат: file1.jpg file1.txt file2.jpg file2.txt file3.jpg file3.txt.
Символ? - замінює будь-який один символ.
ls a? cd - результатом будуть всі файли складаються з 4-х символів, перший - a. третій, четвертий - cd. а другий може бути будь-яким. Результат: abcd adcd.
[] - в квадратних дужках можна задавати певні символи або діапазон символів.
ls [abcd] [abcd] * - результатом будуть всі файли перший і другий символ яких a, b, c чи d. Результат: abcd adcd.
ls * [23] * - результатом будуть всі файли в яких є цифра 2 або 3. Результат: file2.jpg file2.txt file3.jpg file3.txt.
ls file [1-3] * - результатом будуть всі файли що починаються на file у яких далі йде цифра з діапазону 1-3. Результат: file1.jpg file1.txt file2.jpg file2.txt file3.jpg file3.txt.
Я не випадково показав роботу з символами групових операцій на прикладі команди ls. Рекомендую на початковому етапі вивчення Linux при використанні групових операцій (або шаблонів) для команди rm використовувати команду ls для перевірки того, що ви будете видаляти. Створіть в нашому каталозі ./temp/ ще кілька файлів touch file1txt file2txt file3txt file4txt file5txt. Тепер припустимо ви хочете видалити створені тільки, що файли. Для цього можна скористатися командою rm file [1-5] * txt. Але ця команда видалить не тільки файли file1txt file2txt file3txt file4txt file5txt. але і файли file1.txt file2.txt file3.txt. А це нам зовсім не потрібно. Виконавши команду ls file [1-5] * txt ви побачите, що даний шаблон зачіпає і потрібні файли. І команду потрібно виконати як rm file [1-5] txt. Не лінуйтеся перевіряти ваші шаблони, поки не будете відчувати себе впевнено в їх написанні.
Лінки - це також особливий тип файлів в Linux як каталоги або файли-пристрої. Є два типи лінків: сімоліческіе лінки (symbolic link) і жорсткі лінки (hard link). Символічний лінк - це файл всередині якого міститься шлях до об'єкта файлової системи. Створюється символічний лінк за допомогою команди ln з ключем -s.
ln -s шлях до об'єкту ім'я линка
Перейдіть в домашній каталог (cd
) І виконайте команду mkdir -p ./object/folder1/folder2/folder3. Команда mkdir з ключем -p дозволяє створити кілька вкладених каталогів. Створіть файл touch ./object/folder1/folder2/folder3/myfile. А тепер створіть символічний лінк на створений файл: