寻找返回目录中最新文件的命令。
没有看到ls的limit参数…
寻找返回目录中最新文件的命令。
没有看到ls的limit参数…
当前回答
所有这些ls/tail解决方案都非常适用于目录中的文件—忽略子目录。
为了在搜索中包含所有文件(递归地),可以使用find。Gioele建议对格式化的查找输出进行排序。但是要小心使用空格(他的建议不适用于空格)。
这应该适用于所有文件名:
find $DIR -type f -printf "%T@ %p\n" | sort -n | sed -r 's/^[0-9.]+\s+//' | tail -n 1 | xargs -I{} ls -l "{}"
这一分类由时,见人发现:
%Ak File's last access time in the format specified by k, which is either `@' or a directive for the C `strftime' function. The possible values for k are listed below; some of them might not be available on all systems, due to differences in `strftime' between systems.
@ seconds since Jan. 1, 1970, 00:00 GMT, with fractional part.
%Ck File's last status change time in the format specified by k, which is the same as for %A.
%Tk File's last modification time in the format specified by k, which is the same as for %A.
用%C替换%T,按ctime排序。
其他回答
我使用:
ls -ABrt1——group- directory -first | tail -n1 . ls -ABrt1——group- directory -first | tail -n1 . ls
它只给我文件名,不包括文件夹。
ls -Art | tail -n 1
这将返回最新修改的文件或目录。不是很优雅,但是很好用。
使用国旗:
-A列出所有文件。和. .
-r在排序时倒序
-t按时间排序,latest在前
递归地:
find $1 -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head
如果你想在/apps/test目录中找到最后修改的文件夹名称,那么你可以在批处理脚本中放入下面的代码片段并执行它,它将打印最后修改的文件夹名称。
#!/bin/bash -e
export latestModifiedFolderName=$(ls -td /apps/test/*/ | head -n1)
echo Latest modified folder within /apps/test directory is $latestModifiedFolderName
ls -t -1 | sed '1q'
将显示文件夹中最后修改的项目。与grep配对以查找带有关键字的最新条目
ls -t -1 | grep foo | sed '1q'