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

Логотип

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

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

Улучшение эффективности

Когда -Exec action, он запускает новый экземпляр указанной команды каждый раз, когда обнаруживается соответствующий файл. Бывают случаи, когда мы можем предпочесть объединить все результаты поиска и запустить один экземпляр команды. Например, вместо того, чтобы выполнять такие команды:

ls -l file1

ls -l file2

мы можем предпочесть выполнить их так:

ls -l файл1 файл2

таким образом, команда будет выполняться только один раз, а не несколько раз. Есть два способа сделать это. Традиционный способ, используя внешнюю команду xargs и альтернативным способом, используя новую функцию в найдите сам. Сначала поговорим об альтернативном способе.

Изменяя конечную точку с запятой на знак плюса, мы активируем возможность найдите объединить результаты поиска в список аргументов для однократного выполнения нужной команды. Возвращаясь к нашему примеру, это:


find ~ -type f -name 'foo *' -exec ls -l '{}' ';'

find ~ -type f -name 'foo *' -exec ls -l '{}' ';'


-rwxr-xr-x 1 мне

-rw-r - r-- 1 меня

-rwxr-xr-x 1 мне

-rw-r - r-- 1 меня


изображение

мне 224 2007-10-29, 18:44 / home / me / bin / foo

мне 224 2007-10-29, 18:44 / home / me / bin / foo

me

me

0 2016 09:19 /home/me/foo.txt

0 2016 09:19 /home/me/foo.txt

выполнит ls каждый раз при нахождении подходящего файла. Изменив команду на:



найти ~ -type f -name 'foo *' -exec ls -l '{}' +

найти ~ -type f -name 'foo *' -exec ls -l '{}' +


-rwxr-xr-x 1 мне

-rw-r - r-- 1 меня

-rwxr-xr-x 1 мне

-rw-r - r-- 1 меня


изображение

мне 224 2007-10-29, 18:44 / home / me / bin / foo

мне 224 2007-10-29, 18:44 / home / me / bin / foo

me

me

0 2016 09:19 /home/me/foo.txt

0 2016 09:19 /home/me/foo.txt

мы получаем те же результаты, но система должна только выполнить ls команду один раз.


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