寻找返回目录中最新文件的命令。

没有看到ls的limit参数…


当前回答

使用R递归选项..你可以认为这是对好的答案的增强

ls -arRtlh | tail -50

其他回答

根据模式在每个目录中查找最新的文件,例如工作目录的子目录的名称以“tmp”结尾(不区分大小写):

find . -iname \*tmp -type d -exec sh -c "ls -lArt {} | tail -n 1" \;

我喜欢echo *(om[1]) (zsh语法),因为它只给出文件名,而不调用任何其他命令。

ls -lAtr | tail -1

其他解决方案不包括以“。”开头的文件。

该命令还包括'。'和'..,这可能是也可能不是你想要的:

Ls -latr | tail -1

如果你想在/apps/test目录中找到最后修改的文件夹名称,那么你可以在批处理脚本中放入下面的代码片段并执行它,它将打印最后修改的文件夹名称。

#!/bin/bash -e

export latestModifiedFolderName=$(ls -td /apps/test/*/ | head -n1)

echo Latest modified folder within /apps/test directory is $latestModifiedFolderName

我个人更喜欢使用尽可能少的非内置bash命令(以减少昂贵的fork和exec系统调用的数量)。要按日期排序,需要调用ls。但使用头部是没有必要的。我使用以下一行代码(只适用于支持名称管道的系统):

read newest < <(ls -t *.log)

或者获取最古老的文件的名称

read oldest < <(ls -rt *.log)

(注意两个“<”符号之间的空格!)

如果还需要隐藏文件,可以添加一个参数。

我希望这能有所帮助。