我想对ls -l命令进行一些更改。
首先,我想删除第一个“总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,字典为蓝色等)
所以,如果你知道更好的方法,请拍摄:)。
答案 0 :(得分:5)
man ls
,我的意思是,尝试一下。
第二,第三和没有颜色
$> ls -l --group-directories-first --sort=extension --color=never
如果您需要颜色,请使用--color=auto
或--color=always
。
对于第一个问题,例如有一个duplicate。
实际上,您可以使用awk
删除第一行:
awk '{ if ( NR > 1 ) print }'
因此结果命令看起来像
$> ls -l --group-directories-first --sort=extension --color=always | awk '{ if ( NR > 1 ) print }'
答案 1 :(得分:3)
ls -l --group-directories-first -X --color=always | tail -n +2
head
)答案 2 :(得分:0)
至于颜色,您可以使用ls --color=yes
。