Теперь у этой же команды уберите пробел, отделяющий имя команды от параметра,
ls–R 2> errlist2
cat errlist1
-bash: ls-R: command not found
Символ |_
Этот случай использования специального символа оболочки мы уже рассматривали. Его применяют для связывания команд с перенаправлением результатов выполнения одной команды (стандартного вывода) на вход (стандартный ввод) следующей. Утилита ps выводит список активных процессов, а grep ищет и выводит в текстовом файле фрагменты-образцы. Приведенная комбинация двух команд выводит на экран только те из активных процессов, которые начинаются на символ «[». Команда представляет интерес потому, что процессы ядра заключаются в квадратные скобки
ps -ef | grep “\[“
Приведем еще примеры рассматриваемого специального символа. Команда wc подсчитывает характеристики файлов (количество символов, слов или строк). Такая комбинация команд позволяет подсчитать количество файлов текущего каталога
ls -l | wc -l
Отметим, что параметр -l команды wc выводит количество строк, а одноименный параметр первой команды выводит список файлов текущего каталога по одному в строке.
Если соединить знаком «|» утилиту printenv и команду сортировки содержимого файла sort, то получим список специальных переменных, который упорядочен по их имени
printenv | sort
Сделаем еще одно замечание о связывании команд. Для удобства просмотра на экране текстов большого размера используются команды moreиless. Они позволяют выводить в постраничном режиме содержимое текстовых файлов. Связанные с другими командами символом «|», они обеспечивают постраничный вывод информации (при заполнении экрана вывод информации останавливается до нажатия определенной клавиши, например, пробел). Их отличие в том, что вторая (less) обеспечивает возврат к уже просмотренной информации, а первая – нет.
Изучим использование шаблонов в именах файлов.
Символы * ? [ ]_
Они используются для замещения определенного набора символов в именах файлов. При этом фиксируются группы файлов с «похожими» именами. Символ * заменяет любой набор символов. К примеру, а* определяет все файлы, начинающиеся на букву а и имеющие в имени любое количество символов. В противоположность символ ? означает замещение только одного символа. Такой пример использования шаблона а? фиксирует все файлы из двух символов, начинающиеся на символ а. Квадратные скобки позволяют выводить список файлов, в имени которых содержится один из группы символов. Квадратные скобки часто используют с символом * или ?. Если в команде вместо имени указать [abс]??, то предполагается воздействовать на файлы, имеющие в имени три буквы, начинающиеся на а, b или с.
Для подробного рассмотрения использования шаблонов в именах файлов сделаем следующее. Создадим несколько текстовых файлов, используя команды cat и cp, а далее будем выводить на экран часть из них командой ls, используя разные шаблоны для формирования группы из имеющихся файлов. Шаблоны имен файлов являются частью средства UNIX/Linux, называемых регулярными выражениями и используемыми со многим командами.
Для начала создадим файл a из /root/.bashrc, выполнив следующие команды
cd ~
cat .bashrc > a
Сделать копию a в файле с именем A можно еще и так
Cp a A
Получите файлы со следующими именами: a A1 B Ba b1 ad f fa fab.