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

如何让ls -fR输出find命令风格的全路径文件列表

核心解答

标准 GNU/BSD 版本的ls均没有提供内置参数开关,可以让ls -fR直接输出全路径格式的递归结果,你需要对输出做轻量解析。

高效解析方案(适配百万级文件量)

可以用一行低开销的awk命令实现格式转换,额外处理耗时几乎可以忽略:

# 输出所有条目(含目录、符号链接等,排除.和..)
ls -fR /目标主目录路径 | awk '
/:$/&&sub(/:$/,""){cur_dir=$0;next}
NF&&$0!="."&&$0!=".."{print cur_dir "/" $0}
'

如果需要和find -type f一致,仅输出普通文件,可以加-p参数让ls给目录末尾追加/标识,再过滤即可,无需额外调用stat类命令消耗性能:

# 仅输出普通文件,和find -type f结果一致
ls -fRp /目标主目录路径 | awk '
/:$/&&sub(/:$/,""){cur_dir=$0;next}
NF&&$0!="."&&$0!=".."&&!/\/$/{print cur_dir "/" $0}
'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 06:21:00