Это не имеет ничего общего с Bash, это часть find
синтаксиса. Команда должна знать, где -exec
заканчивается действие. Это заканчивается в ;
или в +
. В зависимости от завершающего символа используется правильный вариант -exec
действия.
Почему эти два персонажа были выбраны для этой цели? Я не знаю. Некоторый способ закончить -exec
заявление был необходим, и кто-то выбрал ;
и +
. Теперь символы являются частью стандарта POSIX, когда дело доходит до find
команды.
Мы можем только догадываться, что он ;
был выбран, потому что он также может завершить команду в оболочке, поэтому цель аналогична. По этой причине, однако, ;
то, что должно быть видно, find
должно быть обработано специально в оболочке, следовательно \;
( ';'
или ";"
также работает). Там нет такой проблемы с +
.
Технически вместо нее можно было выбрать почти любую другую строку +
(то же самое с ;
). Следует отметить, что -exec
, {}
, +
и ;
(после того, как он проходит оболочки благодаря выпадать или цитировании), возможные тесты или действия, например, -type
или -print
- все они являются аргументами find
; они становятся значимыми, когда find
обрабатывают их, их значение исходит от того, как find
было изобретено.
Подвести итоги:
- Это о
find
, а не оbash
. - Инструмент поддерживает два слегка разных
-exec
действия. - Чтобы отделить их друг от друга, мы используем два разных аргумента, которые заканчивают
-exec
утверждение; это выбор дизайна. - Эти два разных аргумента
;
и+
; это выбор дизайна. - Эти выборы могли быть сделаны по-другому. Даже если за этим стоит история
+
(которую я не знаю), это пустяки, а не что-то действительно значимое. Я могу только предполагать,{} +
что «один аргумент или более», например, 10+ иногда означает «десять или более».
Более широкое понимание
+
означает плюс, такой как3+5=8
илиconcatenate
, чтобы объединить две строки в одну, такую какs1
+s2
. Странно, что назначение значения завершает аргумент для+
.
Как насчет
>
означает «больше, чем»… Странно, что значение «редирект» назначается для>
.
« +
означает плюс» не от Бога. Кто-то решил, другие последовали, и символ застрял.
- Кто-то решил, что
+
означает «плюс» в математике. - Кто-то решил, что
>
означает «больше, чем» в математике. - Кто-то решил
>
перенаправить в оболочку. - Кто-то решил, что
+
заканчивается-exec
вfind
контексте.