【问题标题】:How to get "Find" command to ONLY return files and no directories [duplicate]如何让“查找”命令只返回文件而不返回目录[重复]
【发布时间】:2020-12-21 22:04:19
【问题描述】:

我正在开发一个列出给定目录中文件的小型桌面应用程序。

左边的表格与右边的表格进行比较。如果右侧缺少任何内容,左侧文件的文本将变为红色。很简单。

我在这些表格中抛出的是包含多个图像子文件夹的路径。 这些被保存为变量,因此我无法明确声明“省略具有此名称的目录”。

以此为例:

我得到这个输出:

我想得到这个输出:

如何让 find 命令只返回文件名?根本没有目录名称。 这可能吗?

到目前为止,我有:

"find -x  "+ path + " | sed 's!.*/!!' | grep -v CaptureOne | grep -v .DS_Store | grep -v .cop | grep -v .cof | grep -v .cot | grep -v .cos | grep -v Settings131 | grep -v Proxies | grep -v Thumbnails | grep -v Cache | sort"

确实只给我文件名而不是完整路径。我想要的。 而且它不包括我知道会存在的其他文件扩展名和文件夹。

就像我说的 - 我从来没有走这条路,上面的代码可能会以更简单的方式完成。接受建议!

【问题讨论】:

    标签: macos terminal


    【解决方案1】:

    要将自己限制在文件中,请使用 -type f(要排除目录,请使用 ! -type d)。要仅获取基本名称,请通过basename 管道输出。总而言之,那就是:

    find . -type f -print0 | xargs -0 basename
    

    -print0-0 使用 NUL 作为分隔符,以便保留路径名中的空格。)

    【讨论】:

    • 这就是我所缺少的。谢谢@Rob Napier
    猜你喜欢
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多