Запретить пользователям изменять группу собственных файлов

find -execdir кажется более подходящим:

find /path/to/searchdir -name file.rtf -execdir cp -v /path/to/filetocopy.rtf . \;

Это запустит cp из каждого найденного каталога, содержащего файл с именем file.rtf , поэтому . с точки зрения cp будет соответствующим каталогом при каждом запуске cp .

Затем вы можете добавить -delete , чтобы удалить файл (после проверки все работает).

Причина, по которой ваш подход не работает, заключается в том, что оболочка вычисляет имя каталога {} перед запуском find и имя каталога {} выводит . . Таким образом,

find /path/to/searchdir -name "file.rtf" -exec cp -v "/path/to/filetocopy.rtf" `dirname {}` \;

становится

find /path/to/searchdir -name "file.rtf" -exec cp -v "/path/to/filetocopy.rtf" . \;
1
13.11.2017, 11:17
0 ответов

Теги

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