カスタムlsエイリアスに色を追加する
質問
オクテット形式で権限を表示するエイリアスを作成しました:
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
各ステップでchar(インクリメントされたインデックス、1文字長の部分文字列)のいずれかを返します ~/[rwx]
それがaの場合、charを1に変換しますr
またはaw
またはax
- 後ろの操作は、10進数の結果を取得する操作を行うだけです
print("%0o ", k)
前に計算された10進数値の8進数の結果を出力するだけです
所属していません apple.stackexchange