Как передать файлы, найденные с помощью find, в качестве аргументов?

Вообще говоря, нет. Практически каждая программа вызывает open() (или creat(), если на то пошло) с режимом 0666, поэтому какой бы umask вы не применили, вы никогда не получите 0750. Даже компоновщик, создающий исполняемые файлы, открывает выходные файлы с режимом 0666 и chmod их потом:

strace -f -e file gcc bla.c 2>&1 | fgrep a.out 
...
[pid 14096] open("a.out", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
...
[pid 14096] chmod("a.out", 0755)        = 0

Если вы хотите другого поведения, вам нужно написать свои собственные инструменты или обертки вокруг существующих инструментов, которые выполняют предполагаемое изменение режима.

9
24.10.2016, 03:31
0 ответов

Теги

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