使用进行正常查找的结果find . ! -path "./build*" -name "*.txt":
./tool/001-sub.txt
./tool/000-main.txt
./zo/001-int.txt
./zo/id/002-and.txt
./as/002-mod.txt
以及何时排序sort -n:
./as/002-mod.txt
./tool/000-main.txt
./tool/001-sub.txt
./zo/001-int.txt
./zo/id/002-and.txt
但是所需的输出是:
./tool/000-main.txt
./zo/001-int.txt
./tool/001-sub.txt
./zo/id/002-and.txt
./as/002-mod.txt
这意味着输出仅基于文件名排序,但是文件夹信息应作为输出的一部分进行维护。
编辑:使示例更加复杂,因为子目录结构可能包含多个层次。
                
                2
              
                  看到这个问题我问的SO:stackoverflow.com/questions/3222810/...
                
                
                  
                    —
                    CAMH 
                    
                  
                
              
                  @camh-如果可能的话,我只想使用Unix命令。无论如何,我的问题几乎是你的问题。您是否可以将最佳解决方案转移到该线程(始终保持与原始线程的链接),以便我将其标记为解决方案?
                
                
                  
                    —
                     8:51解开
                    
                  
                
              
                  如果@Shawn做出了我在注释中建议的更改(使用
                
                  
                    —
                    卡姆(Camh)2011年
                    
                  
                
              -printf代替awk),我认为这是最好的解决方案。我已经对原始实现进行了重新设计以使用此方法。