ls 命令:如何获得递归完整路径列表,每个文件一行? [英] ls command: how can I get a recursive full-path listing, one line per file?

查看:44
本文介绍了ls 命令:如何获得递归完整路径列表,每个文件一行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎样才能让 ls 吐出一个单行递归路径的平面列表?

How can I get ls to spit out a flat list of recursive one-per-line paths?

例如,我只想要一个带有完整路径的文件的平面列表:

For example, I just want a flat listing of files with their full paths:

/home/dreftymac/.
/home/dreftymac/foo.txt
/home/dreftymac/bar.txt
/home/dreftymac/stackoverflow
/home/dreftymac/stackoverflow/alpha.txt
/home/dreftymac/stackoverflow/bravo.txt
/home/dreftymac/stackoverflow/charlie.txt

ls -a1 几乎可以满足我的需要,但我不想要路径片段,我想要完整路径.

ls -a1 almost does what I need, but I do not want path fragments, I want full paths.

推荐答案

如果你真的想使用 ls,那么使用 awk 格式化它的输出:

If you really want to use ls, then format its output using awk:

ls -R /path | awk '
/:$/&&f{s=$0;f=0}
/:$/&&!f{sub(/:$/,"");s=$0;f=1;next}
NF&&f{ print s"/"$0 }'

这篇关于ls 命令:如何获得递归完整路径列表,每个文件一行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆