在 Debian 上,哪个命令将返回目录中文件名“最小”的文件?

在 Debian 上,哪个命令将返回目录中文件名“最小”的文件?

我有一个包含三个文件的目录,例如5.war6.war7.war

哪个命令将返回此目录中文件名“最小”的文件?(在本例中为5.war。)

答案1

ls默认按名称排序。如果没有目录需要处理,则只需执行以下操作:

ls | head -1

为了添加一些完成度,如果您必须担心目录,请执行以下操作:

ls -p | egrep -v /$ | head -1

答案2

不幸的是,ls按字母顺序对文件名进行排序,这对于数字来说是不正确的。例如,10.war 2.war,这不是你所希望的。

也许你可以通过谷歌找到一些更智能的排序工具,但如果没有的话,我建议:

  1. 如果您的文件是按字母顺序排列的,@Hyppy 的解决方案非常适合您。
  2. 如果它们是数字,而不是head -1,我建议按数字排序:ls|sort -n|head -1
  3. 如果两者兼有,你就必须寻找一些替代方案(我用谷歌搜索了更智能的排序工具来代替你)。

相关内容