Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Предопределенные действия

Давайте поработаем! Имея список результатов наших найдите Команда полезна, но на самом деле мы хотим действовать в соответствии с элементами в списке. К счастью, найдите позволяет выполнять действия на основе результатов поиска. Существует набор предопределенных действий и несколько способов применения действий, определенных пользователем. Сначала давайте посмотрим на несколько предопределенных действий:


Таблица 17-6: Предопределенные действия поиска


Описание действия

Описание действия

-delete Удалить текущий соответствующий файл.


изображение

-ls Выполните эквивалент лс -дилс в соответствующем файле.

Вывод отправляется на стандартный вывод.


изображение

-print Вывести на стандартный вывод полный путь к соответствующему файлу. Это действие по умолчанию, если не указано другое действие.


изображение

-quit Выйти после совпадения.


изображение


Как и в случае с тестами, действий гораздо больше. Увидеть найдите справочную страницу для получения полной информации. В нашем самом первом примере мы сделали это:


найти ~

найти ~


который создал список всех файлов и подкаталогов, содержащихся в нашем домашнем каталоге. Был составлен список, потому что -Распечатать действие подразумевается, если не указано другое действие. Таким образом, нашу команду можно также выразить как:



найти ~ -print

найти ~ -print


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


имеют расширение файла «.BAK» (которое часто используется для обозначения файлов резервных копий), мы могли бы использовать эту команду:



найти ~ -type f -name '* .BAK' -delete

найти ~ -type f -name '* .BAK' -delete


В этом примере каждый файл в домашнем каталоге пользователя (и его подкаталогах) ищется на предмет имен файлов, оканчивающихся на .БАК. Когда они найдены, они удаляются.


изображение

Внимание! Само собой разумеется, что вы должны будьте предельно осторожны при использовании -удалять действие. Всегда сначала проверяйте команду, подставляя

-print действие для -delete для подтверждения результатов поиска.


изображение

Прежде чем мы продолжим, давайте еще раз посмотрим, как логические операторы влияют на действия. Рассмотрим следующую команду:



найти ~ -тип f -имя '* .BAK' -print

найти ~ -тип f -имя '* .BAK' -print


Как мы видели, эта команда будет искать каждый обычный файл (-тип f), имя которого заканчивается на .BAK (-name '*.BAK ') и выведет относительный путь каждого совпадающего файла в стандартный вывод (-print). Однако причина того, что команда выполняет именно так, определяется логическими отношениями между каждым из тестов и действий. Помните, что по умолчанию между каждым тестом и действием существует подразумеваемая связь. Мы также могли бы выразить команду таким образом, чтобы было легче увидеть логические связи:



найти ~ -тип f -and -name '* .BAK' -and -print

найти ~ -тип f -and -name '* .BAK' -and -print


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


Тест / действие выполняется, только если ...

Тест / действие выполняется, только если ...

-Распечатать -type f и -name '* .BAK' верны


изображение

-name '* .BAK' Типа f верно


изображение

Типа f Выполняется всегда, так как это первая проверка / действие в

-и отношения.


изображение


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



найти ~ -print -and -type f -and -name '* .BAK'

найти ~ -print -and -type f -and -name '* .BAK'


Эта версия команды распечатает каждый файл ( -Распечатать действие всегда оценивается как истина), а затем проверьте тип файла и указанное расширение файла.


Лучшие облачные вычисления для ОС в OnWorks: