【问题标题】:UNIX(AIX): How can i list all files in a directory that is NOT in a listUNIX(AIX):如何列出不在列表中的目录中的所有文件
【发布时间】:2014-05-07 21:36:11
【问题描述】:

我正在寻找一种列出 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

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

有什么想法吗?

【问题讨论】:

    标签: unix find aix


    【解决方案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" \)
    

    【讨论】:

      猜你喜欢
      • 2012-06-28
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 2018-08-31
      • 2017-02-16
      • 2011-06-13
      • 2014-03-08
      相关资源
      最近更新 更多