【发布时间】:2011-11-16 20:30:31
【问题描述】:
我想对 ls -l 命令进行一些更改。
首先,我想删除第一个“total X”行,因为我不使用它。
然后,我想在最上面显示目录。 (或者,更准确地说,按类型排序。)
第三,我想在相同类型的情况下按名称排序。
用脚本或函数式语言,甚至用 C 编写这几乎是微不足道的,但我从我读到的一些东西中得到启发,你不应该为所有东西都写新东西,而应该结合你拥有的工具。几个小时后(!!),我想出了这个:
ls -l | tac | head -n -1 | sort -k 1.1,1.2 -k 9
感觉有点傻,好像行得通。但是:
慢一点:
real 0m0.009s
user 0m0.008s
sys 0m0.008s
而不是 ls -l:
real 0m0.003s
user 0m0.004s
sys 0m0.000s
没有颜色! (用ls -l,字典是蓝色的等等)
所以,如果你知道更好的方法,那就开枪吧:)
【问题讨论】:
-
好的,非常感谢,这似乎符合我的要求,而且比我的解决方案快得多!我不知道 ls 有这么多选择;我的错。 ls -l --group-directories-first --sort=extension --color=always |尾 -n+2
-
您可以将其标记为已接受,而不是在 cmets 中发布您喜欢的答案。
-
好的,对你们来说还有一个挑战——如何保留
ls -l [folder]功能,即,您可以键入lsl my_dir(如果lsl是修改后的ls -l命令的别名如上)?