You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下如何列出指定文件名及之后的所有文件

如何筛选出my-app.001219及之后的文件?

你在Linux环境中执行ls -la /var/lib/my-app/my-app*得到了一系列带递增6位数字后缀的文件,现在需要提取出my-app.001219及之后的所有文件,这里有几个简单实用的实现方法:

方法1:利用字符串比较快速过滤

直接通过awk对文件名路径进行字符串比较,因为所有目标文件的前缀路径完全一致,后缀是固定长度的数字,字符串比较的结果和数字大小判断一致,命令如下:

ls -la /var/lib/my-app/my-app* | awk '$NF >= "/var/lib/my-app/my-app.001219"'

原理:$NF代表ls输出每行的最后一列(也就是完整的文件路径),直接和目标文件路径做字符串比较,满足条件的行就会被打印出来。

方法2:提取后缀数字做精确判断

如果担心字符串比较可能出现的特殊情况(比如后缀长度不统一),可以用awk提取出后缀的数字部分再做数值判断:

ls -la /var/lib/my-app/my-app* | awk '{split($NF, parts, "."); if (parts[3] >= 1219) print $0}'

原理:split($NF, parts, ".")把文件路径按.分割成数组,parts[3]就是后缀的数字部分(比如001219),直接做数值比较后输出符合条件的行。

方法3:用find命令实现(更适合大量文件场景)

如果目录下文件数量很多,用find结合shell命令来筛选更高效:

find /var/lib/my-app -maxdepth 1 -type f -name "my-app.*" -exec sh -c 'num=${0##*.}; if [ $num -ge 1219 ]; then ls -ld "$0"; fi' {} \;

原理:find先定位到目标目录下所有符合my-app.*命名的文件,然后对每个文件执行shell脚本,用${0##*.}提取后缀数字,判断数值大于等于1219后,用ls -ld输出详细信息。

内容的提问来源于stack exchange,提问作者avisheks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:44:17