在我的ZSH自定义配置中,我具有以下功能:
cll() { ls -AlhG "$@" | 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}'; }
它输出:
➜ test cll
total 32
644 -rw-r--r-- 1 work admin 0B Oct 7 18:55 .hidden
644 -rw-r--r-- 1 work admin 480B Aug 22 2016 gulpfile.js
644 -rw-r--r-- 1 work admin 149B Jan 7 2017 index.php
755 drwxr-xr-x 247 work admin 8.2K Aug 22 2016 node_modules
644 -rw-r--r-- 1 work admin 1.0K Aug 22 2016 test.less
644 -rw-r--r-- 1 work admin 664B Aug 22 2016 test.min.css
755 -rwxr-xr-x 1 work admin 0B Oct 7 18:54 try
它还支持颜色,因此我的可执行文件等具有漂亮的颜色:)
我想从中删除权限细分列(例如:)-rw-r--r--
。所以我希望它看起来像这样:
644 1 work admin 0B Oct 7 18:55 .hidden
644 1 work admin 480B Aug 22 2016 gulpfile.js
644 1 work admin 149B Jan 7 2017 index.php
755 247 work admin 8.2K Aug 22 2016 node_modules
644 1 work admin 1.0K Aug 22 2016 test.less
644 1 work admin 664B Aug 22 2016 test.min.css
755 1 work admin 0B Oct 7 18:54 try
我试图弄乱它,但是我所做的一切都会破坏它。我愿意采用一种完全不同的方法(而不是通过管道传递awk
)。
最终解决方案:
感谢@Skaperen引起cut
我的注意。我对函数进行了双管道处理,效果很好!现在是输出:
➜ test cll
total
644 work admin 0B Oct 7 18:55 .hidden
644 work admin 480B Aug 22 2016 gulpfile.js
644 work admin 149B Jan 7 2017 index.php
755 work admin 8.2K Aug 22 2016 node_modules
644 work admin 1.0K Aug 22 2016 test.less
644 work admin 664B Aug 22 2016 test.min.css
755 work admin 0B Oct 7 18:54 try
这是我的功能aliases.zsh
(自定义配置):
cll() { ls -AlhG "$@" | 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}' | cut -c 1-5,21-; }
唯一能使它完美的是,如果我可以添加一个自定义列来分析它是否是“目录”,“文件”,“符号链接”等。
通过命令传递它cut -c 1-3,14-
。如果需要调整数字,请调整数字。做man cut
更多细节。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句