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

时间:2014-03-28 12:15:23

标签: unix find aix

我正在寻找一种列出UNIX系统上目录内容的方法,该方法没有出现在预定义的“排除”列表中。

说我有一个导演:

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用!运算符排除它们:

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

请注意,我们正在对.的排除路径进行硬编码。因此,如果您从其他地方执行它,您将需要添加相应的路径。或者,更好的是,使用完整路径,如:

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