Я спрашиваю, почему найти странно.
Это не так. Это не имеет ничего общего с find
. Фактически, когда файл создан, find
даже не запустился.
>>
примерно означает «перенаправить стандартный вывод в конец этого файла, при необходимости создайте новый файл». Обратите внимание, что ничего из этого не имеет ничего общего с тем, что осталось из >>
.
Перенаправление является функцией оболочки, find
ничего не знает о перенаправлении, а оболочка ничего не знает о find
. >>
волшебным образом не меняет своего значения только потому, что вы случайно позвонили find
. Это все еще означает то же самое.
Если вы хотите использовать функцию оболочки в -exec
, вам нужно использовать оболочку в -exec
:
find . -type f -iname 'file' -exec sh -c 'echo >> "{}"' \;