The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Bash (-exec) "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Bash (-exec) "  +/
Сообщение от merfi (ok) on 12-Ноя-10, 10:38 
прошу прощения за совершенно тупой вопрос
вот пример команды
find /path/to/files -type f -exec chmod 0644 {} \;
Все мне понятно в ней (абсолютно)
ищем файлы
find /path/to/files -type f
вот это вот порождает дочерний процесс для выполнени команды chmod
chmod 0644
А вот что это вот означает совершенно запамятовал
{} \;
Что это означает??? Могу предположить что в скобках выполняется подскрипт
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Bash (-exec) "  +1 +/
Сообщение от phpcoder email(ok) on 12-Ноя-10, 11:19 
> А вот что это вот означает совершенно запамятовал
> {} \;

Могу ошибаться, но вместо {} подставляется имя файла, а \; означает конец команды, которую будет -exec исполнять. Здесь точку с запятой приходится экранировать, чтобы шелл не подумал, что это две отдельных команды.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Bash (-exec) "  +/
Сообщение от DeadLoco (ok) on 12-Ноя-10, 19:41 
> Что это означает??? Могу предположить что в скобках выполняется подскрипт

Чтение манов полностью развеяло бы все ваши непонятки.

в опции "-exec chmod 0644 {} \;"  конструкт "{}" имеет семантику "каждый найденный файл".
Конструкция "\;" означает "конец секции exec". Это делается для того, чтобы точку с запятой можно было использовать внутри вызываемой экзеком команды.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Bash (-exec) "  +/
Сообщение от merfi (ok) on 13-Ноя-10, 09:33 
>> Что это означает??? Могу предположить что в скобках выполняется подскрипт
> Чтение манов полностью развеяло бы все ваши непонятки.
> в опции "-exec chmod 0644 {} \;"  конструкт "{}" имеет семантику
> "каждый найденный файл".
> Конструкция "\;" означает "конец секции exec". Это делается для того, чтобы точку
> с запятой можно было использовать внутри вызываемой экзеком команды.

Спасибо Большое ! Вы очень помогли

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Bash (-exec) "  +/
Сообщение от pavlinux (ok) on 27-Ноя-10, 22:15 
>> Что это означает??? Могу предположить что в скобках выполняется подскрипт
> Чтение манов полностью развеяло бы все ваши непонятки.
> в опции "-exec chmod 0644 {} \;"  конструкт "{}" имеет семантику
> "каждый найденный файл".

Строка `{} 'заменяется на имя текущего обрабатываемого файла везде,
где он встречается в аргументах команды при -exec


То есть можно вот так

find . -name *.sh -exec sha1sum {} md5sum {} \;

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру