【问题标题】:listing files in UNIX owned by a particular user列出特定用户拥有的 UNIX 中的文件
【发布时间】:2019-12-22 12:08:15
【问题描述】:

如何在 UNIX 中列出特定用户拥有的文件?

如果我在共享目录中使用ls - l命令,它会列出所有文件的详细信息。这个共享目录包含许多用户在一个组,我处于一种情况,我想查看仅由特定用户创建的文件。是否有任何列表命令可以将 username 作为输入。 参考下面的例子,

命令:ls - l

drwxr-xr-x   2 user_1     main 4.0K    Feb 12 16:43 proj_1
drwxrws---   6 user_2     main  20M    Feb 18 11:07 proj_2
drwxr-xr-x   3 user_1     main 1.3M    Feb 18 00:18 proj_3
drwxrwsr-x   2 user_2     main  8.0K   Dec 27 01:23 proj_4
drwxrwsr-x   2 user_3     main  8.1K   Dec 27 01:23 proj_5

我正在寻找一个命令来仅显示 user_2 创建的文件,我的预期输出如下,

   drwxrws---   6 user_2     main  20M    Feb 18 11:07 proj_2
   drwxrwsr-x   2 user_2     main  8.0K   Dec 27 01:23 proj_4

如果有办法,请告诉我。

【问题讨论】:

    标签: linux unix


    【解决方案1】:

    您可以像这样使用findcommand:

    找到 . -maxdepth 1 -user some_user -exec ls -lsad {} \;

    为什么使用这些选项:

    • maxdepth我们只想看到当前目录级别
    • user 我们只想查看给定用户拥有的文件
    • exec 让我们对找到的文件做点什么

    我们想对文件做什么:

    ls -lsad 给你当前文件的长列表,如果是目录,不要进去。

    【讨论】:

    • 谢谢。它很有帮助,但是是否可以像我的示例格式一样显示文件的每个细节(权限、大小、日期等)?
    • @SreejinTJ:你试过了吗?它正是打印您在示例中给出的内容!
    • 是的。我试过 find -maxdepth 3 -user user_2 ,它按预期显示输出 proj_2 和 proj_4 但类似于 ls 命令的输出格式.只是想知道我是否可以看到 ls-l 命令 的显示格式的输出
    • @SreejinTJ:你可以拥有任何你喜欢的格式。只需在 exec 子句之后添加要用于显示文件的命令。
    • 使用 -exec 搞定了。谢谢
    【解决方案2】:

    应该可以将 awk 与 ls -l 一起使用

    ls -l | awk '$3=="user_2" { print $0 }'
    

    这将打印第三个字段(用户)匹配“user_2”的所有行

    【讨论】:

    • 谢谢。现在我有另一个要求,我想列出当前目录中的所有 .txt 文件(我有更多其他文件类型),我尝试使用 ls| awk '$0=="*.txt" {print $0 }' 。请让我知道我是否可以为此目的使用 awk
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2016-01-06
    • 1970-01-01
    • 2023-03-18
    • 2021-12-23
    • 2019-09-07
    • 1970-01-01
    相关资源
    最近更新 更多