Я создал псевдоним для отображения разрешений в октетном формате:
alias lso="ls -l | 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
}'
Я также добавил этот код для отображения ls в цветном формате:
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
Мне интересно, как сделать так, чтобы мой псевдоним отображался в цветном формате? Кроме того, если кто-нибудь может объяснить синтаксис псевдонима (после канала)? Я скопировал текст и пытаюсь научиться синтезировать подобные команды.
По умолчанию ls
OSX поставляется из BSD и не позволяет вам делать то, что вы хотите.
Использование CoreUtils ls (устанавливается с помощью macport, доступно с помощью gls
команды)
Вы получите свои цвета, используя --color=always
:
ls -l --color=always | 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
}'
О части awk:
ls
выводит права доступа к файлам в виде 9 символов. Вот почему есть петля.substr
на каждом шаге один из символов (увеличенный индекс, 1 подстрока длины символа)~/[rwx]
преобразует char в 1, если это a r
или a w
или ax
print("%0o ", k)
просто печатает восьмеричный результат десятичного значения, рассчитанного до