Bash命令以递归方式列出文件,但按分类排序

前端之家收集整理的这篇文章主要介绍了Bash命令以递归方式列出文件,但按分类排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常使用 Bash中的优秀 find程序列出包含某些过滤器的文件.例如,在Subversion(SVN)工作副本中,我有时希望以递归方式列出所有文件,但不包括.svn子目录,如下所示:
find . -name '.svn' -prune -o -type f -print

今天,我想做类似的事情,但我也想影响列出目录内容的顺序:我希望’普通’文件后跟子目录(然后是递归内容).似乎没有这个选项.

ls(list)命令有一个递归列出的选项.此命令有许多排序选项,包括文件名列出,访问时间,大小等,但不是分类,尽管-p选项将注释目录.

现在,我可以编写一个Python脚本来完成我想要的操作.但是,找到几乎我想做的一切.通常在Bash shell中,可以组合程序来做你想做的事情:每个程序,比如find,sort,uniq,ls,wc,执行一个简单的任务,但做得很好.并非每个程序都需要能够排序,因为排序可以排序.所以,真的,我只是好奇……

我的问题是,你知道是否有办法做我想做的事情:既可以通过组合Bash程序来过滤和排序递归文件列表?

例如,find以这个按字母顺序排列的文件给我:

a.txt
b\file1.txt
b\subdir\file2.txt
b\then_file3.txt
c.txt
d\file4.txt
e.txt

但是我更喜欢它们的顺序,在每个目录中,普通文件首先按字母顺序列出,然后按字母顺序依次列出目录:

a.txt
c.txt
e.txt
b\file1.txt
b\then_file3.txt
b\subdir\file2.txt
d\file4.txt

(我是Windows用户,但是我在Cygwin运行了一个Bash shell.)

谢谢.

使用嵌入式查找.外部查找定位所有目录并执行内部查找,该查找仅显示该目录中所需的文件
find . -type d -exec find {} -type f -maxdepth 1 \;
原文链接:https://www.f2er.com/bash/384483.html

猜你在找的Bash相关文章