2.1.13. Опции -exec и -ok

2.1.13. Опции -exec и -ok

Предположим, вы нашли нужные файлы и хотите выполнить по отношению к ним определенные действия. В этом случае вам понадобится опция -exec (некоторые системы позволяют с помощью опции -exec выполнять только команды ls или

ls -l). Многие пользователи применяют опцию -exec для нахождения старых файлов, подлежащих удалению. Я рекомендую вместо команды rm выполнить сначала команду ls, чтобы убедиться в том, что команда find нашла именно те файлы, которые нужно удалить.

После опции -exec следует указать выполняемую команду, а затем ввести фигурные скобки, пробел, обратную косую черту и, наконец, точку с запятой. Рассмотрим пример:

$ find . — type f -exec ls -1 {} ;

-rwxr?xr?x 10 root wheel 1222 Jan 4 1993 ./sbin/C80
-rwxr?xr?x 10 root wheel 1222 Jan 4 1993 ./sbin/Normal
-rwxr?xr?x 10 root wheel 1222 Jan 4 1993 ./sbin/Revvid

Здесь выполняется поиск обычных файлов, список которых отображается на экране с помощью команды ls -l.

Чтобы найти файлы, которые не обновлялись в каталоге /logs в течение последних пяти дней, и удалить их, выполните следующую команду:

$ find /logs -type f -mtime +5 -exec rm {} ;

Следует соблюдать осторожность при перемещении и удалении файлов. Пользуйтесь опцией -ok, которая позволяет выполнять команды mv и rm в безопасном режиме (перед обработкой очередного файла выдается запрос на подтверждение). В следующем примере команда find находит файлы с расширением LOG, и если какой?то файл создан более пяти дней назад, она удаляет его, но сначала просит вас подтвердить эту операцию:

$ find . — name "*.LOG" — mtime +5 -ok rm {} ;

< rm… ./nets. LOG > ? у

Для удаления файла введите у, а для предотвращения этого действия — n.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

9.2.1.2 Функция exec в системе с замещением страниц

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

9.2.1.2 Функция exec в системе с замещением страниц Как уже говорилось в главе 7, когда процесс обращается к системной функции exec, ядро считывает из файловой системы в память указанный исполняемый файл. Однако в системе с замещением страниц по запросу исполняемый файл, имеющий


Опции

Из книги Создаем порт для FreeBSD своими руками. Часть II автора Ачилов Рашид

Опции Если программа сложная, то, как правило она предлагает множество различных вариантов построения — с использованием такой-то возможности, без использования такой-то возможности… Некоторые порты сначала проводят «автоматическое обнаружение» некоторых


1.5. Действие команд fork, exec и exit на объекты IPC

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

1.5. Действие команд fork, exec и exit на объекты IPC Нам нужно достичь понимания действия функций fork, exec и _exit на различные формы IPC, которые мы обсуждаем (последняя из перечисленных функций вызывается функцией exit). Информация по этому вопросу сведена в табл. 1.4.Большинство функций


14.1.1. Методы system и exec

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл


16.1. С помощью команды exec

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

16.1. С помощью команды exec Команда exec <filename перенаправляет ввод со stdin на файл. С этого момента весь ввод, вместо stdin (обычно это клавиатура), будет производиться из этого файла. Это дает возможность читать содержимое файла, строку за строкой, и анализировать каждую введенную


Пример 16-2. Перенаправление stdout с помощью exec

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

Пример 16-2. Перенаправление stdout с помощью exec #!/bin/bash# reassign-stdout.shLOGFILE=logfile.txtexec 6>&1 # Связать дескр. #6 со stdout. # Сохраняя stdout.exec > $LOGFILE # stdout замещается файлом "logfile.txt".# ----------------------------------------------------------- ## Весь вывод от команд, в данном блоке, записывается в файл


Пример 16-3. Одновременное перенаправление устройств, stdin и stdout, с помощью команды exec

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Пример 16-3. Одновременное перенаправление устройств, stdin и stdout, с помощью команды exec #!/bin/bash# upperconv.sh# Преобразование символов во входном файле в верхний регистр.E_FILE_ACCESS=70E_WRONG_ARGS=71if [ ! -r "$1" ] # Файл доступен для чтения?then echo "Невозможно прочитать из заданного файла!" echo


9.1.4. Запуск новой программы: семейство exec()

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

9.1.4. Запуск новой программы: семейство exec() После запуска нового процесса (посредством fork()) следующим шагом является запуск в процессе другой программы. Имеется несколько функций, которые служат различным целям:#include <unistd.h> /* POSIX */int execve(const char *filename, /* Системный вызов */char


9.1.4.4. Атрибуты, наследуемые exec()

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

9.1.4.4. Атрибуты, наследуемые exec() Как и в случае с fork(), после вызова программой exec сохраняется ряд атрибутов:• Все открытые файлы и открытые каталоги; см. раздел 4.4.1 «Понятие о дескрипторах файлов» и раздел 3.3.1 «Базовое чтение каталогов». (Сюда не входят файлы, помеченные для


9.4.3.1. Флаг close-on-exec

Из книги автора

9.4.3.1. Флаг close-on-exec После вызова fork() и перед вызовом exec() следует убедиться, что новая программа наследует лишь те открытые файлы, которые ей нужны. Вы не захотите, чтобы порожденный процесс мешался в открытых файлах родителя, если только это так не задумано. С другой стороны,


10.9. Сигналы, передающиеся через fork() и exec()

Из книги автора

10.9. Сигналы, передающиеся через fork() и exec() Когда программа вызывает fork(), ситуация с сигналами в порожденном процессе почти идентична ситуации в родительском процессе. Установленные обработчики остаются на месте, заблокированные сигналы остаются заблокированными и т.д.


Exec (путь и название исполняемого файла)

Из книги автора

Exec (путь и название исполняемого файла) Метод предназначен для выполнения команд и при своем вызове возвращает объект, с помощью которого можно управлять вызванной программой. Данный объект поддерживает следующие методы. ПРИМЕЧАНИЕ Выполнить команду можно также с


5.8. Команда exec

Из книги автора

5.8. Команда exec Команда exec заменяет текущий интерпретатор shell указанной командой. Обычно она используется для того, чтобы закрыть текущий интерпретатор и запустить другой. Но у нее есть и другое применение. Например, команда видаexec < файлделает указанный файл стандартным


4.7. Функции fork и exec

Из книги автора

4.7. Функции fork и exec Прежде чем рассматривать создание параллельного сервера (что мы сделаем в следующем разделе), необходимо описать функцию Unix fork. Эта функция является единственным способом создания нового процесса в Unix.#include <unistd.h>pid_t fork(void);Возвращает: 0 в дочернем