<Предыдущая | Содержание: | Следующая>
Расширение пути
Механизм работы подстановочных знаков называется расширение имени пути. Если мы попробуем некоторые из техник, которые мы использовали в предыдущих главах, мы увидим, что это действительно расширения. Учитывая домашний каталог, который выглядит так:
[я @ linuxbox ~] $ ls | ||
Рабочий стол ls-output.txt | Картинки | Шаблоны |
Документы Музыка | Общая | Видео |
мы могли бы выполнить следующие расширения:
[я @ linuxbox ~] $ эхо D *
Документы рабочего стола
[я @ linuxbox ~] $ эхо D *
Документы рабочего стола
а также:
[я @ linuxbox ~] $ эхо * с
Документы Картинки Шаблоны Видео
[я @ linuxbox ~] $ эхо * с
Документы Картинки Шаблоны Видео
или даже:
[я @ linuxbox ~] $ эхо [[: верх:]] *
Документы для рабочего стола Музыка Картинки Общедоступные шаблоны Видео
[я @ linuxbox ~] $ эхо [[: верх:]] *
Документы для рабочего стола Музыка Картинки Общедоступные шаблоны Видео
и заглянем за пределы нашего домашнего каталога:
[я @ linuxbox ~] $ эхо / usr / * / поделиться
/ USR / Kerberos / доля / USR / местные / доля
[я @ linuxbox ~] $ эхо / usr / * / поделиться
/ USR / Kerberos / доля / USR / местные / доля
Расширение имени пути скрытых файлов
Как мы знаем, имена файлов, начинающиеся с точки, скрыты. Расширение имени пути также учитывает это поведение. Такое расширение, как:
эхо *
не показывает скрытые файлы.
На первый взгляд может показаться, что мы можем включить скрытые файлы в расширение, начав шаблон с начальной точки, например:
эхо. *
Это почти работает. Однако, если мы внимательно рассмотрим результаты, мы увидим, что имена «.» и «..» также появятся в результатах. Поскольку эти имена относятся к текущему рабочему каталогу и его родительскому каталогу, использование этого шаблона, скорее всего, приведет к неверному результату. Мы можем убедиться в этом, если попробуем выполнить команду:
ls -d. * | меньше
Чтобы лучше выполнить раскрытие имени пути в этой ситуации, мы должны использовать более конкретный шаблон:
эхо. [!.] *
Этот шаблон распространяется на каждое имя файла, которое начинается с точки, не включает в себя вторую точку и сопровождается любыми другими символами. Это будет работать правильно с большинством скрытых файлов (хотя все равно не будет включать имена файлов с несколькими точками в начале). В ls команда с -A опция («почти все») предоставит правильный список скрытых файлов:
лс -А