LINUX.ORG.RU

Вопросик про права доступа.


0

0

Как можно программно (средствами shell) высчитать права доступа на файл\каталог. Тобишь есть допустим права rwx-wxr-x на директорию, нужно выдрать из них числовой вариант и назначить такие-же права другому каталогу.
Интересует только как раз вычисление прав доступа.

> нужно выдрать из них числовой вариант и назначить такие-же права другому каталогу.

у GNU chmod есть опция reference. это непортабельно, но stat тоже непортабельно. Портабельно ls.

dilmah ★★★★★
()
Ответ на: комментарий от xio

В данном конктреном случае наверняка chmod --reference подойдет.

> Почему ты так всегда заботишься о переносимости?

А переносимость -- очень просто -- код написанный в соответствии с четко прописанной спецификацией-стандартом это теорема. Код написанный лишь бы работало -- это и есть быдлокод, о котором так давно говорили большевики.

dilmah ★★★★★
()
Ответ на: комментарий от SANTA_CLAUS

м, еще чтоб тем не плодить, спрошу тут.
Может вопрос и нубский, но все же.. фишка вот в чем:

~ $ find $HOME -maxdepth 1 -type d -name doc
/home/santa/doc
~ $ echo $?
0
~ $ find $HOME -maxdepth 1 -type d -name docw
~ $
~ $ echo $?
0

Тобишь при любом раскладе, нашел финд что я ему сказал или не нашел, выходит с 0. Это фича такая?

SANTA_CLAUS ★★
() автор топика
Ответ на: комментарий от SANTA_CLAUS

> Значит нужно будет еще через grep пустить?

да, так делают иногда:

if cmd | grep -q ''; then
  echo 'Achtung!  cmd emitted nothing!' 1>&2
fi

dilmah ★★★★★
()
Ответ на: комментарий от xio

> Может нафиг его, стандарт, если он мешает закономерной эволюции рационального?

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

А так -- если нужна эволюция -- ну пробейте изменение стандарта.

dilmah ★★★★★
()
Ответ на: комментарий от SANTA_CLAUS

Это не фишка, это man, их читают или курят до просветления:

find exits with status 0 if all files are processed successfully, greater than 0 if errors occur.

То есть, если ошибок чтения не возникло, значит все ОК, exit status равен 0.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.