寻找不属于某人的文件

mik*_*628 165 linux shell search file

我正在寻找递归查看目录以查找非特定用户拥有的文件,我不知道如何写这个.

Mel*_*Mel 259

find(1)实用程序具有可以使用"!"来否定("反转")的原色.运营商.然而,在提示符上必须用反斜杠来逃避否定,因为它是一个shell元字符.结果:

find . \! -user foo -print
Run Code Online (Sandbox Code Playgroud)

  • 逃避`!`似乎是可选的 (6认同)
  • find有-exec标志 - >`find.!-user foo -exec chown <owner>:<group> {} \;` (3认同)
  • 将输出通过管道传输到 `xargs -I{} -P3 -- ${cmdhere} {}` 可以让 ${cmdhere} 并行操作每个文件。cmdhere ::= 标准 unix utils;标准 unix utils ::= chmod, chown, stat, ls, ... (2认同)
  • @sorin:如果 Bash 历史记录处于活动状态(`set -H`),则必须转义感叹号,默认情况下通常处于启用状态。 (2认同)

jww*_*jww 35

寻找不属于某人的文件

其他人已回答了正文中"不属于特定用户"的问题.这是一个回答名义问题但没有提供的问题:

$ find / -nouser
Run Code Online (Sandbox Code Playgroud)

您可以像这样使用它:

$ sudo find /var/www -nouser -exec chown root:apache {} \;
Run Code Online (Sandbox Code Playgroud)

还有一个相关的:

$ find / -nogroup
Run Code Online (Sandbox Code Playgroud)

  • 我会给你一个技术性的投票,但如果他们的意思是你的解释,人们通常会说"不属于任何人". (3认同)
  • @Shibumi-是的,听起来适合那些头发劈开的人。我面临的问题是,我需要查找实际上不属于任何用户的文件。Web服务器刷新和迁移后,它浮出水面。一些用户/组ID发生了变化,因此我需要编写chown脚本。 (2认同)

Ign*_*ams 13

-user按用户或用户ID查找,并!反转谓词.所以,! -user ....

  • 被否决是因为它没有向已接受的答案添加任何内容,并且掩盖了其他可能的答案(例如下面的 zsh glob 模式)。 (3认同)

Cra*_*ent 9

你可以用这个:

find <dir> ! -user <username> 
Run Code Online (Sandbox Code Playgroud)

  • 被否决是因为它没有向已接受的答案添加任何内容,并且掩盖了其他可能的答案(例如下面的 zsh glob 模式)。 (3认同)
  • 该答案是在接受答案后 3 分钟给出的。人们因给出答案而值得赞扬,但他们并不是通灵者。 (2认同)

A.B*_*.B. 5

使用 z-shell (zsh) 你可以使用

ls -laR *(^U)
Run Code Online (Sandbox Code Playgroud)

或者

ls -la **/*(^U)
Run Code Online (Sandbox Code Playgroud)

递归搜索所有不属于您的文件。