2012-06-06 1 views
10

Как я могу получить идентификатор группы в mac os или linux? .Что такое команда для получения groupid имени группы в mac или linux?

т.е. Command GroupName ==> должен возвращать GroupID

Eg:

Command staff ==> 20 
+2

Но эту команду потребовалось для разработки моего продукта. то есть в сценарии установки оболочки – Rajasekhar

+0

Это действительный и нетривиальный вопрос и должен быть вновь открыт. – ulidtko

+1

@ulidtko: он недействителен для переполнения стека, к сожалению, поскольку в наши дни правила более строгие, чем раньше. Вы все правильно делаете в SOCVR. – halfer

ответ

20

В Linux, вы можете использовать getent(1):

$ getent group staff 
staff:x:20: 

Если вы хотите только 20:

$ getent group staff | cut -d: -f3 
20 

На OS X, вы можете использовать dscl(1):

$ dscl . -read /Groups/staff | awk '($1 == "PrimaryGroupID:") { print $2 }' 
20 

Это может быть проще использовать эту простую команду питона (с помощью grp library), чтобы иметь тот же результат на обеих платформах:

$ python -c 'import grp; print grp.getgrnam("staff").gr_gid' 
20 
+0

Это можно сделать и в рубине: 'ruby -e 'require" etc "; puts Etc :: getgrnam («staff»). gid'' –

+0

проще: 'stat -c '% g' file-path' или для mac:' stat -f '% g' file-path' –

Смежные вопросы