<Попередній | зміст | Наступна>
Розширення назви шляху
Механізм, за яким працюють символи підстановки, називається розширення імені шляху. Якщо ми спробуємо деякі з методів, які ми використовували в наших попередніх розділах, ми побачимо, що вони насправді є розширеннями. Дано домашній каталог, який виглядає так:
[me@linuxbox ~]$ ls | ||
Настільний ls-output.txt | фотографії | шаблони |
Документи Музика | громадськості | Відео |
ми могли б здійснити такі розширення:
[me@linuxbox ~]$ луна D*
Документи на робочому столі
[me@linuxbox ~]$ луна D*
Документи на робочому столі
і:
[me@linuxbox ~]$ відлуння *с
Документи Картинки Шаблони Відео
[me@linuxbox ~]$ відлуння *с
Документи Картинки Шаблони Відео
або навіть:
[me@linuxbox ~]$ луна [[:upper:]]*
Документи для робочого столу Музика Картинки Загальнодоступні шаблони Відео
[me@linuxbox ~]$ луна [[:upper:]]*
Документи для робочого столу Музика Картинки Загальнодоступні шаблони Відео
і дивлячись за межі нашого домашнього каталогу:
[me@linuxbox ~]$ echo /usr/*/share
/usr/kerberos/share /usr/local/share
[me@linuxbox ~]$ echo /usr/*/share
/usr/kerberos/share /usr/local/share
Розширення шляху до прихованих файлів
Як відомо, імена файлів, які починаються з крапки, приховані. Розширення назви шляху також поважає цю поведінку. Таке розширення, як:
луна*
не розкриває приховані файли.
На перший погляд може здатися, що ми можемо включити приховані файли в розширення, починаючи шаблон з початкової точки, наприклад:
луна .*
Це майже працює. Однак, якщо ми уважно розглянемо результати, ми побачимо, що назви «.» і «..» також з’являться в результатах. Оскільки ці назви посилаються на поточний робочий каталог і його батьківський каталог, використання цього шаблону, ймовірно, призведе до неправильного результату. Ми можемо побачити це, якщо спробуємо виконати команду:
ls -d .* | менше
Щоб краще розширити ім’я шляху в цій ситуації, ми повинні використовувати більш конкретний шаблон:
луна .[!.]*
Цей шаблон поширюється на кожне ім’я файлу, яке починається з крапки, не включає другу крапку і за яким слідують будь-які інші символи. Це буде правильно працювати з більшістю прихованих файлів (хоча воно все одно не включатиме назви файлів із кількома початковими крапками). The ls з командою -A параметр («майже всі») надасть правильний список прихованих файлів:
ls -A