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

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

点击访问腾讯云官方网站


请访问原文链接:给 macOS 添加 ll 命令,以数字显示文件权限,查看最新版。原创作品,转载请保留出处。

作者:gc(at)sysin.org,主页:www.sysin.org

说明:以下方法也同样适用于 Linux,但显示时间格式的参数有所不同。

常规版

创建文件:

1
2
3
4
5
6
7
8
9
10
11
echo '
#!/bin/bash
ls -ahlFT
' > /usr/local/bin/ll

## 说明
a 显示所有文件包含.开头的隐藏文件
h 人类可读显示大小
l 列表显示
F 目录后添加/
T 显示完整时间格式(Linux 中参数为:--full-time 或者 --time-style=long-iso)

赋予执行权限:

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

或者写入环境变量:

  • bash
1
echo 'alias ll="ls -ahlFT"' >> ~/.bashrc
  • zsh(macOS Catalina 及以上)
1
echo 'alias ll="ls -ahlFT"' >> ~/.zshrc

效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 ~ % ll
total 40
drwxr-xr-x+ 35 sa staff 1.1K 5 17 16:55:20 2021 ./
drwxr-xr-x 5 root admin 160B 4 27 13:26:26 2021 ../
-rw-r--r-- 1 sa staff 47K 4 29 11:39:42 2021 .zcompdump
-rw------- 1 sa staff 19K 5 17 16:55:20 2021 .zsh_history
drwx------ 77 sa staff 2.4K 5 16 16:24:51 2021 .zsh_sessions/
-rw-r--r--@ 1 sa staff 3.9K 5 17 16:26:11 2021 .zshrc
drwx------@ 3 sa staff 96B 5 10 10:01:42 2021 Applications/
drwx------@ 41 sa staff 1.3K 5 17 16:40:08 2021 Desktop/
drwx------+ 4 sa staff 128B 4 27 14:02:32 2021 Documents/
drwx------@ 50 sa staff 1.6K 5 17 14:54:57 2021 Downloads/
drwx------@ 71 sa staff 2.2K 5 7 13:44:18 2021 Library/
drwx------ 4 sa staff 128B 4 27 16:55:18 2021 Movies/
drwx------+ 4 sa staff 128B 4 27 15:12:58 2021 Music/
drwx------+ 5 sa staff 160B 5 3 22:51:34 2021 Pictures/
drwxr-xr-x+ 4 sa staff 128B 4 27 13:26:26 2021 Public/

高级版:以数字显示权限

这里我们把命令叫做 lll

命令:

1
ls -lahFT | 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 -lahFT | 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

效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ lll
0200 total 440
0755 drwxr-xr-x+ 35 sa staff 1.1K 5 17 16:57:04 2021 ./
0755 drwxr-xr-x 5 root admin 160B 4 27 13:26:26 2021 ../
0644 -rw-r--r-- 1 sa staff 47K 4 29 11:39:42 2021 .zcompdump
0600 -rw------- 1 sa staff 19K 5 17 16:57:04 2021 .zsh_history
0700 drwx------ 77 sa staff 2.4K 5 16 16:24:51 2021 .zsh_sessions/
0644 -rw-r--r--@ 1 sa staff 3.9K 5 17 16:26:11 2021 .zshrc
0700 drwx------@ 3 sa staff 96B 5 10 10:01:42 2021 Applications/
0700 drwx------@ 41 sa staff 1.3K 5 17 16:40:08 2021 Desktop/
0700 drwx------+ 4 sa staff 128B 4 27 14:02:32 2021 Documents/
0700 drwx------@ 50 sa staff 1.6K 5 17 14:54:57 2021 Downloads/
0700 drwx------@ 71 sa staff 2.2K 5 7 13:44:18 2021 Library/
0700 drwx------ 4 sa staff 128B 4 27 16:55:18 2021 Movies/
0700 drwx------+ 4 sa staff 128B 4 27 15:12:58 2021 Music/
0700 drwx------+ 5 sa staff 160B 5 3 22:51:34 2021 Pictures/
0755 drwxr-xr-x+ 4 sa staff 128B 4 27 13:26:26 2021 Public/

捐助本站 ❤️ Donate


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


支付宝打赏 微信打赏

赞赏一下



1000000