【问题标题】:How can we exclude given directory and sub-directories from getting listed using the find command我们如何使用 find 命令从列表中排除给定目录和子目录
【发布时间】:2021-10-01 22:02:21
【问题描述】:

这是我的目录结构:

/dir_a
     -- /dir_1
        ---/file_11
     -- /dir_2
        ---/file_21
        ---/file_22
     -- /dir_3
        ---/file_31
        ---/file_32

我想将文件中的输出打印为 -

/dir_a/dir_1/file_11
/dir_a/dir_2
/dir_a/dir_3/file_31
/dir_a/dir_3/file_31

我用fine命令试过了:

find /dir_a/ -not -path /dir_a/dir_2/* >output.txt

我不想在输出中出现 /dir_a/dir_2

有什么办法?

【问题讨论】:

  • 但首先你说我想将文件中的输出打印为/dir_a/dir_2那里然后你说我不希望 /dir_a/dir_2 在输出中。
  • 很抱歉给您带来了困惑。我不想打印 /dir_a/dir_2。

标签: terminal find command


【解决方案1】:
find dir_a/* -not -path "*dir_2"

(注意dir_2前面的星号)

输出:

dir_a/dir_1
dir_a/dir_1/file_11
dir_a/dir_3
dir_a/dir_3/file_31

【讨论】:

  • 我不想打印 - /dir_a/dir_2。您的建议可行,但它将排除层次结构中的所有 dir_2 。
【解决方案2】:

这对我有用 -

find /dir_a/ | grep -v -e '/dir_a/dir_2/*' >output.txt

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2011-05-11
    • 2012-12-25
    • 2013-09-14
    • 2012-11-07
    • 1970-01-01
    • 2013-08-05
    • 2016-05-22
    相关资源
    最近更新 更多