给 macOS 添加 ll 命令,以数字显示文件权限

Posted by sysin on 2020-11-04
Estimated Reading Time 4 Minutes
Words 736 In Total
Viewed Times

作者:gc(at)sysin.org,主页:www.sysin.org,转载请保留出处。

说明:以下方法也同样适用于 Linux。

常规版

创建文件:

1
2
3
4
echo '
#!/bin/bash
ls -ahlF
' > /usr/local/bin/ll

赋予执行权限:

1
chmod +x /usr/local/bin/ll

写入环境变量(可选配置,默认不需要):

  • bash
1
echo 'alias ll="/usr/local/bin/ll"' >> ~/.bashrc
  • zsh(macOS Catalina 及以上)
1
echo 'alias ll="/usr/local/bin/ll"' >> ~/.zshrc

效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 ~ % ll
total 40
drwxr-xr-x+ 15 sa staff 480B 7 9 21:48 ./
drwxr-xr-x 5 root admin 160B 1 1 2020 ../
-r-------- 1 sa staff 9B 5 28 02:55 .CFUserTextEncoding
[email protected] 1 sa staff 10K 6 30 19:47 .DS_Store
drwx------ 2 sa staff 64B 7 9 21:48 .Trash/
-rw------- 1 sa staff 1.4K 6 30 20:50 .zsh_history
drwx------ 7 sa staff 224B 7 9 21:48 .zsh_sessions/
drwx------+ 8 sa staff 256B 7 9 22:59 Desktop/
drwx------+ 3 sa staff 96B 5 28 02:55 Documents/
drwx------+ 3 sa staff 96B 5 28 02:55 Downloads/
[email protected] 60 sa staff 1.9K 7 3 06:06 Library/
drwx------+ 4 sa staff 128B 6 30 06:11 Movies/
drwx------+ 3 sa staff 96B 5 28 02:55 Music/
drwx------+ 4 sa staff 128B 6 30 06:09 Pictures/
drwxr-xr-x+ 4 sa staff 128B 5 28 02:55 Public/

高级版:以数字显示权限

这里我们把命令叫做 lll

命令:

1
ls -lahF | awk '{k=0;s=0;for(i=0;i<=8;i++ ){k+=((substr($1,i+2,1)~/[rwxst]/)*2^(8-i))}j=4;for(i=4;i<=10;i+=3){s+=((substr($1,i,1)~/[stST]/)*j);j/=2}if(k){printf("%0o%0o ",s,k)}print}'

创建文件

在使用 cat EOF 中出现 $ 变量通常会直接被执行,显示执行的结果。若想保持 $ 变量不变需要使用 \ 符进行注释。

1
2
3
4
cat > /usr/local/bin/lll <<EOF
#!/bin/bash
ls -lahF | awk '{k=0;s=0;for(i=0;i<=8;i++ ){k+=((substr(\$1,i+2,1)~/[rwxst]/)*2^(8-i))}j=4;for(i=4;i<=10;i+=3){s+=((substr(\$1,i,1)~/[stST]/)*j);j/=2}if(k){printf("%0o%0o ",s,k)}print}'
EOF

赋予执行权限:

1
chmod +x /usr/local/bin/lll

写入环境变量(可选配置,默认不需要):

  • bash
1
echo 'alias lll="/usr/local/bin/lll"' >> ~/.bashrc
  • zsh(macOS Catalina 及以上)
1
echo 'alias lll="/usr/local/bin/lll"' >> ~/.zshrc

效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ lll
0200 total 440
0755 drwxr-xr-x+ 31 sa staff 992B 11 4 14:16 ./
0755 drwxr-xr-x 5 root admin 160B 5 27 18:41 ../
0400 -r-------- 1 sa staff 9B 5 27 18:42 .CFUserTextEncoding
0644 [email protected] 1 sa staff 18K 11 4 12:45 .DS_Store
0755 drwxr-xr-x 5 sa staff 160B 11 4 11:05 .SwitchHosts/
0700 drwx------ 2 sa staff 64B 11 4 11:50 .Trash/
0755 drwxr-xr-x 3 root staff 96B 10 19 09:45 .config/
0600 -rw------- 1 sa staff 13K 11 4 14:07 .viminfo
0600 -rw------- 1 sa staff 21K 11 4 14:15 .zsh_history
0644 -rw-r--r-- 1 sa staff 3.6K 11 4 14:15 .zshrc
0700 [email protected] 5 sa staff 160B 10 21 15:25 Applications/
0700 [email protected] 47 sa staff 1.5K 11 4 14:24 Desktop/
0700 [email protected] 4 sa staff 128B 10 30 11:54 Documents/
0700 [email protected] 80 sa staff 2.5K 11 4 13:14 Downloads/
0700 [email protected] 66 sa staff 2.1K 11 4 08:45 Library/
0700 drwx------+ 4 sa staff 128B 5 27 18:43 Movies/
0700 drwx------+ 6 sa staff 192B 10 28 12:48 Music/
0700 drwx------+ 4 sa staff 128B 5 27 18:51 Pictures/
0755 drwxr-xr-x+ 4 sa staff 128B 5 27 18:41 Public/

捐助本站 ❤️ Donate


如果文章中使用的内容或图片侵犯了您的版权,请联系作者删除。如果您喜欢这篇文章或者觉得它对您有所帮助,欢迎您发表评论,也欢迎您分享这个网站,或者赞赏一下作者,谢谢!


支付宝打赏 微信打赏

赞赏一下