Bash命令以递归方式列出文件,但按分类排序
发布时间:2020-12-16 01:10:44 所属栏目:安全 来源:网络整理
导读:我经常使用 Bash中的优秀 find程序列出包含某些过滤器的文件.例如,在Subversion(SVN)工作副本中,我有时希望以递归方式列出所有文件,但不包括.svn子目录,如下所示: find . -name '.svn' -prune -o -type f -print 今天,我想做类似的事情,但我也想影响列出目
我经常使用
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 bfile1.txt bsubdirfile2.txt bthen_file3.txt c.txt dfile4.txt e.txt 但是我更喜欢它们的顺序,在每个目录中,普通文件首先按字母顺序列出,然后按字母顺序依次列出目录: a.txt c.txt e.txt bfile1.txt bthen_file3.txt bsubdirfile2.txt dfile4.txt (我是Windows用户,但是我在Cygwin运行了一个Bash shell.) 谢谢.
使用嵌入式查找.外部查找定位所有目录并执行内部查找,该查找仅显示该目录中所需的文件:
find . -type d -exec find {} -type f -maxdepth 1 ; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |