Отобразите ответвление Мерзавца и состояние в подсказке
export GIT_PS1_SHOWDIRTYSTATE=true if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 "#%s")\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(__git_ps1 "#%s")\$ ' fi
Этот сайт обеспечивает интерактивный способ видеть, какие биты полномочий установлены, когда различные биты устанавливаются/сбрасываются.
"Калькулятор" похож на это:
Почему Вам нужно восьмеричное число во-первых?
Я всегда использую:
chmod o+x file # all + eXecute permissions
chmod g-w file # group - write perms
chmod u=r file # user can just read
chmod ug=rw file # user,group = read and write
chmod a+w file # user,group,others + write
ugo (a) легко помнить. Однако можно перепутать o: = владелец? o: = другой? Но каков был бы u, если o=owner? u: = пользователь, поэтому o=other.
Некоторые команды как числовые полномочия только. Хорошо, не трудно вычислить, если Вы помните две последовательности: ugo + rwx.
r w x | Sum
u 4 2 1 | 7
g 4 - 1 | 5
o 4 2 - | 6
---------------------
756
Да, очень искусственный.
Когда дело доходит до s и S я должен консультироваться с руководством. Возможно, Google в следующий раз.:)
Восьмеричный используется для полномочий, потому что это - легкое преобразование. Каждая группа rwx
формы одна восьмеричная цифра. Все, что необходимо помнить, является первыми 3 полномочиями 2: 4, 2, 1. r
= 4, w
= 2, x
= 1.
rw-r--r--
= 110 100 100
= 4+2+0 4+0+0 4+0+0
= 644
У меня есть этот небольшой псевдоним, что можно вставить .bashrc (или эквивалентный).
Отказ от ответственности: Я не автор сценария, и я не уверен, кто записал это..., но опоры ему для того, чтобы сделать это.
alias lsp="ls -l --color |
awk '{k=0; for(i=0;i<=8;i++) k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));
if (k) printf(\" %0o \",k); print}'"
echo 'rwxrwxrw-' | perl -ne 'BEGIN{sub conv{ chomp(my $ins=shift); my $k=0; for(my $i=0;$i<=8;$i++) { my $tmps = ( substr($ins, $i, 1) =~ /[rwx]/ ); $k+= ( $tmps*(2**(8-$i)) ); }; if ($k) { sprintf(" %0o ", $k); } else { "??" ; }; }; } print(conv($_)."\n");'
распечатал бы"776
".Удачи!
– sdaau
16.07.2014, 09:04
Это, безусловно, наиболее удобно, и, кроме того, я считаю, именно то, что вы изначально просили:
http://ss64.com/osx/chmod.html
Это полностью интерактивное, хотя вы не можете редактировать строку "-r-x-------", но вы можете поставить галочку или восьмеричный флажок. Делая оба варианта, вы можете обновить другой.
С той же страницы:
цифровой (абсолютный) режим:
от одной до четырех восьмеричных цифр. Любые опущенные цифры считаются ведущими нулями.
Первая цифра = выбор атрибутов для установленного идентификатора пользователя (4), установка идентификатора группы (2) и сохранение текстового изображения (1). Вторая цифра = разрешения для пользователя, которому принадлежит файл: прочитать (4), записать (2) и выполнить (1). Третья цифра = разрешения для других пользователей в группе файла: читать (4), записывать (2) и выполнять (1). Четвертая цифра = разрешения для других пользователей НЕ в группе файла: прочитать (4), записать (2) и выполнить (1)
Восьмеричное (0-7) значение вычисляется путем сложения значений для каждой цифры Пользователь (rwx) = 4+2+1 = 7 Группа(rx) = 4+1 = 5 Мир (rx) = 4+1 = 5 режим кхмод = 0755
Несмотря на то, что это не «сетевой» калькулятор, поскольку ответ nico не обрабатывает индикаторы setuid, setgid и sticky, но набирает -голосов, пример обновленного сценарий, который обрабатывает дополнительные состояния разрешений, может быть гарантирован:
ls -l | \
awk '{k=0; for(i=0; i<=8; i++) k+=((substr($1, i+2, 1) ~ /[rwxs]/)*2^(8-i));
if ($1 ~ /^.{3}[Ss]/) k+=2048; if($1 ~ /^.{6}[Ss]/) k+=1024;
if ($1 ~ /[Tt]/) k+=512; if(k) printf("%4o ",k); print; }'
Этот вопрос лучше подходит для скриптовых решений, где glenn jackman предлагаетperl
stat
один -вкладыш, аналогичный:
$ what="/tmp"
$ perl -s -e '@fields = stat "$f"; printf "%04o\n", $fields[2] & 07777' -- -f="$what"
1777
Сценарий awk основан на найденном здесь