UNIX(AIX):如何列出不在列表中的目录中的所有文件

问题描述:

我正在寻找一种列出UNIX系统上的目录内容的方法,该方法未出现在预定义的“排除“列表。UNIX(AIX):如何列出不在列表中的目录中的所有文件

说我有一个目录:

dir1 
    dir1-1 
     test1 
     test2 
     test3 
    dir1-2 
     test4 
     test5 

和 “排除列表” 本身:

dir1/dir1-1/test1 
dir1/dir1-2/test5 

我感兴趣的输出

dir1/dir1-1/test2 
dir1/dir1-1/test3 
dir1/dir1-2/test4 

和实际命令将同时拥有数千个文件的排除列表和目录结构,因此性能有点问题。

任何想法?

您可以用!操作中排除:

find . -type f ! \(-path "./dir1-1/test1" -o -path "./dir1-2/test5" \) 

注意,我们硬编码从.的excludee路径。所以如果你从另一个地方执行它,你需要添加相应的路径。或者,更好地,使用如下完整路径:

find /your/path/ -type f ! \(-path "/your/path/dir1-1/test1" -o -path "/your/path/dir1-2/test5" \)