我有一个包含三个文件的目录,例如5.war
,6.war
和7.war
。
哪个命令将返回此目录中文件名“最小”的文件?(在本例中为5.war
。)
答案1
ls
默认按名称排序。如果没有目录需要处理,则只需执行以下操作:
ls | head -1
为了添加一些完成度,如果您必须担心目录,请执行以下操作:
ls -p | egrep -v /$ | head -1
答案2
不幸的是,ls
按字母顺序对文件名进行排序,这对于数字来说是不正确的。例如,10.war
将前 2.war
,这不是你所希望的。
也许你可以通过谷歌找到一些更智能的排序工具,但如果没有的话,我建议:
- 如果您的文件是按字母顺序排列的,@Hyppy 的解决方案非常适合您。
- 如果它们是数字,而不是
head -1
,我建议按数字排序:ls|sort -n|head -1
- 如果两者兼有,你就必须寻找一些替代方案(我用谷歌搜索了更智能的排序工具来代替你)。