Время доступа к каталогу изменяется в ходе выполнения команды find.

-mtime n истинно, если в последние n дней осуществлялась модификация текущего файла;

Пример

-mtime -3 файл модифицировался менее3-х дней назад

-ctime n истинно, если в последние n дней осуществлялась модификация атрибутов файла;

-newer file истинно, если текущий файл модифицировался позднее файла, указанного в аргументе file.

Ключи-действия (другой тип атомарных выражений):

-print распечатать полное имя файла

-exec command {} \; выполнить команду над файлом

Здесь: command - коанда Unix;

{} - заменяется именем найденного файла;

подстрока command всегда завершается конструкцией "\;"

Атомарные выражения могут комбинироваться с использованием следующих логических операторов:

! отрицание;

-o логическое сложение ИЛИ (операция OR);

-a логичекое умножение И (операция AND).

Выход из системы

Для выхода из системы применяются (в зависимости от реализации Unix) команды logout, logoff. Часто (например в реализации FreeBSD) достаточно выполнить встроенную команду интерпретатора команд - exit для выхода из интерпретатора, что ведет к выходу из системы.

Дополнительные возможности интерпретатора команд: перенаправление ввода-вывода. Конвейеры. Фоновые команды. Группирование команд.

Перенаправление ввода-вывода

Когда в Unix начинает работать команда или программа, автоматически открываются три направления ввода-вывода:

· стандартный ввод;

· стандартный вывод

· стандартный протокол (стандартное устройство для вывода сообщений об ошибках).

Многие команды берут исходные данные из стандартного ввода и печатают результаты в стандартный вывод.

Первоначально в качестве устройства стандартного ввода используется клавиатура терминала, а стандартный вывод и стандартный протокол назначены на экран терминала.

Стандартный интерпретатор команд (sh) позволяет изменять первоначально установленные направления ввода-вывода.

Для изменения направления вывода используется операция ‘>’ (знак «больше»):

команда > имя_файла.

Конструкция ‘>>’ позволяет дописать в существующий файл (иначе файл усекается до 0 и запись в него ведется с начала).

Для изменения направления ввода следует использовать операцию ‘<’:

команда < имя_файла.

И, наконец, для изменения направления вывода для стандартного протокола применяют конструкцию ‘2>’:

команда 2> имя_файла.

Здесь цифра 2 указывает дескриптор файла стандартного протокола.

Конвейеры

Интерпретатор командного языка Unix позволяет перенаправлять выход одной команды на вход другой. Для этого служит операция ‘|’ – вертикальная черта.

Примечания. 1). Команды или программы, которые вводят данные со стандартного ввода, а выводят на стандартный вывод – называются фильтрами. 2). Синхронизация работы фильтров в конвейере производится ядром ОС Unix.

вариант с конвейером:

%ls –l | wc

Как только команда ls начинает выдавать результаты, они сразу поступают на вход фильтра wc. Никакого рабочего промежуточного файла не требуется.

Фоновые команды

При работе с операционной системой в режиме командной строки пользователь после подсказки операционной системы (% или $) вводит очередную команду и дожидается завершения работы команды. Затем после подсказки операционной системы вводится следующая команда.

В ОС Unix можно указать выполнение команды в «фоновом» режиме. Для этого необходимо после команды через пробел набрать символ ‘&’.

«Попросим» компилятор языка Си изготовить исполняемый файл (см. раздел 3.7) в фоновом режиме.

%cc prog.c & запуск программы cc в фоновом режиме
№ процесса, который выполняет процесс cc (выводится для контроля за его работой)
% подсказка операционной системы

Теперь можно вводить новую команду (в то время как программа выполняется в фоновом режиме).

Группирование команд

Если последовательность команд, которую вы собираетесь ввести, вам хорошо известна, можно ввести их в одной строке, разделяя точкой с запятой:

%ls –l > file; wc < file; rm file

Для группирования команд используются и другие способы. Один из них – применение круглых скобок:

%(cd /usr/a; cat a.c)

Здесь запускается субинтерпретатор sh, затем выполняются команды в скобках и по закрывающей круглой скобке происходит возврат в текущий каталог.

Наши рекомендации