【问题标题】:Show only directories, not their contents with `find -type d | xargs ls`使用 `find -type d | 只显示目录,而不是它们的内容xargs ls`
【发布时间】:2018-11-13 21:02:04
【问题描述】:

我想按名称查找一些文件夹,然后使用“ls”列出它们的信息,这是我使用“find”所做的,

find ./ -mindepth 1 -maxdepth 3 -type d -name logs

我得到的是:

./RECHMN32Z/US/logs
./RECHMN32Z/UM/logs
./RECHMP3BL/US/logs
./RECHMP3BL/UM/logs
./RECHMAS86/UM/logs
./RECHMAS86/US/logs

然后我添加 "xargs ls -l" ,然后它将返回上面返回的这些文件夹下的所有文件的信息, 如果我只想列出这些文件夹的信息,怎么办?

【问题讨论】:

    标签: linux shell find ls xargs


    【解决方案1】:

    不是 find 或 xargs 的错,而是 ls 的错。当给定目录名称时, ls 会显示它们的内容。您可以使用-d 让它只显示目录本身。

    find 有一个-ls 操作,它使用与ls -dils 相同的格式。无需调用外部命令。

    find ./ -mindepth 1 -maxdepth 3 -type d -name logs -ls
    

    或使用ls -ld 列出目录而不是其内容。 -exec cmd {} +xargs 的更简单替代方案。不需要管道。

    find ./ -mindepth 1 -maxdepth 3 -type d -name logs -exec ls -ld {} +
    

    【讨论】:

    • “find ./ -mindepth 1 -maxdepth 3 -type d -name logs -ls”的结果格式不可读,“find ./ -mindepth 1 -maxdepth 3 -type d” -name logs -exec ls -ld {} +" 很完美,符合我的期望,谢谢,
    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    相关资源
    最近更新 更多