【问题标题】:Using find to list files but not if inside a listed directory使用 find 列出文件,但不在列出的目录中
【发布时间】:2014-11-17 16:04:28
【问题描述】:

我发现了一个很好的命令,它列出了不属于 myUser 的文件:

find . ! -user myUser

输出如下:

A
A/AA.txt
B
B/BB
B/BB/BBB.txt
C/CC/CCC.txt
D

文件具有 .txt 扩展名的位置。

这对于我想做的事情来说有点多余(在这些文件上应用 chown -R)。 我想以 find 作为起点,以这样的列表结束:

A
B
C/CC/CCC.txt
D

换句话说,我想找到不属于 myUser 的任何条目(文件/目录), 并且未嵌套在已列出的条目中。

-maxdepth 在这种情况下不是一个选项,因为我不确定顶级文件夹的组织。

【问题讨论】:

  • C/CC/CCC.txt 如何成为预期输出的一部分?对于一个级别,您可以这样做:find . -maxdepth 1 ! -user myUser
  • @BlueMoon C/CC/CCC.txt 将成为输出的一部分,如果有人在该特定文件上应用了 chown www-data:www-data,但不是在任何包含文件夹。在这种情况下,使用 -maxdepth 不是一个选项,我将更新我的问题

标签: bash find


【解决方案1】:

试试这个命令:

find . ! -user myUser -prune
  • -prune是的;如果文件是目录,请不要深入其中。

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2012-12-09
    • 2011-07-13
    • 1970-01-01
    相关资源
    最近更新 更多