Читать книгу 📗 "UNIX — универсальная среда программирования - Керниган Брайан Уилсон"
$ echo hello worldhello world$Но аргументы могут формироваться путем выбора по шаблону. Так, команда
$ echo ch1.*перечисляет имена всех файлов в гл. 1,
$ echo *перечисляет имена всех файлов текущего каталога в алфавитном порядке,
$ pr *выводит на печать содержимое всех ваших файлов (в алфавитном порядке), а
$ rm *удаляет все файлы текущего каталога. (Лучше быть абсолютно уверенным, что вы действительно этого хотите!)
Символ
*$ rm *.saveудалит все файлы, оканчивающиеся на
.saveЗаметьте, что все имена файлов выбираются в алфавитном порядке, который отличается от числового. Если в вашей книге 10 глав, порядок может быть не тем, на который вы рассчитываете, поскольку
ch10ch2$ echo *ch1.1 ch1.2 ... ch10.1 ch10.2 ... ch2.1 ch2.2 ...Символ
*shell[...]$ pr ch[12346789]* $ pr ch[1-46-9]* $ rm temp[a-z] Шаблон
?$ ls ? $ ls -l ch?.1 $ rm temp? Отметим, что шаблоны сопоставляются только с именами существующих файлов. В частности, нельзя создать новые имена файлов с помощью шаблонов. Например, если вы захотите расширить
chchapter$ mv ch.* chapter.*поскольку
chapter.*Символы шаблонов, подобные
*/usr/mary/*/usr/mary//usr/*/calendarcalendarЕсли вам когда-нибудь придется отказаться от специального назначения символов
*?$ ls '?'Можно также предварить специальный символ обратной дробной чертой:
$ ls ?(Вспомните, что, поскольку
?shellВ чем состоит различие между следующими командами:
$ ls junk $ echo junk$ ls / $ echo /$ ls $ echo$ ls * $ echo *$ ls '*' $ echo '*'Большинство команд, которые мы рассматривали, производят вывод на терминал, некоторые из них, подобно редактору, осуществляют ввод с терминала. А теперь приведем почти универсальное правило: терминал может быть заменен для ввода, вывода или обеих операций на файл.
Например,
$ lsвыдает список файлов на ваш терминал. Но если задать
$ ls > filelistто тот же список файлов помещается вместо этого в файл
filelist>cat$ cat f1 f2 f3 > tempСимвол
>>>$ cat f1 f2 f3 >> tempсольет содержимое
f1f2f3temp>tempАналогично символ
<let$ mail mary joe torn bob < letВо всех этих примерах наличие пробелов по обе стороны символа
><Имея возможность переключать выходной поток с помощью
<$ who > temp$ sort < tempПоскольку команда
whowc -l