Время доступа к каталогу изменяется в ходе выполнения команды 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, затем выполняются команды в скобках и по закрывающей круглой скобке происходит возврат в текущий каталог.