В чем разница между -exec с '{}' ';' и -exec с {} / ;?

Пробуя свои силы в написании некоторых скриптов bash, я сталкивался с различным использованием параметра -exec. В моем контексте я использую его после команды find.

В этом руководстве говорится, что нужно использовать {} /; после exec, чтобы передать имя файла и экранировать; так что команда правильно завершается.

Это сообщение на форуме показывает использование '{}' ';' вместо {} /;.

Я опробовал оба метода в Ubuntu 11.04, и только один с одинарными кавычками работает правильно. Есть ли разница между версиями Linux, которая вызывает это? Они взаимозаменяемы? Один предпочтительнее другого?

3
задан 12 April 2012 в 19:35

1 ответ

Ваша оболочка может присвоить последовательности {} особое значение (в зависимости от типа оболочки, даже если вы находитесь внутри сценария оболочки или нет). Чтобы избежать этого, вы можете заключить его в кавычки '{}' или экранировать его следующим образом: \{\} (вам нужно использовать обратную косую черту \ вместо прямой косой черты /, как вы делали в своем вопросе). [ 1110]

Также обратите внимание, что обычное сообщение об ошибке, если вы делаете это неправильно (например, если вы используете ; вместо \;):

find: missing argument to -exec

См. Также соответствующий раздел в справочной странице find .

0
ответ дан 12 April 2012 в 19:35

Другие вопросы по тегам:

Похожие вопросы: