【问题标题】:How can you search only filenames by find? [closed]如何通过 find 仅搜索文件名? [关闭]
【发布时间】:2009-07-14 05:20:46
【问题描述】:

本题基于answer

我在家跑步

find -- ./ Desktop                                       

我将命令理解为

  1. 不带参数查找 在当前的主目录 (= /Users/masi/)
  2. 在当前目录找到文件夹名称Desktop

您是如何阅读命令的?

【问题讨论】:

  • 您的意思是./Desktop 而不是./ Desktop

标签: find


【解决方案1】:

标题中你的问题的答案是

$ find . -type f

现在,请记住

$ find -- ./ Desktop

将返回Desktop 中的文件两次。

【讨论】:

  • 你似乎是对的。 --- 我把find 当作find <option> <folder> <filename>
  • * 我的意思是文件名也是文件夹名。
【解决方案2】:

在您的示例中,“--”表示停止寻找更多选项。之后的所有其他内容都是一条路径,因此它会找到与该路径匹配的任何其他内容。由于“./”表示“当前目录”,它匹配当前目录下的所有内容(Desktop 将导致该目录以及其中的任何内容被报告两次。)

你可能想要这样的东西:

find ./Desktop -type f

这将在 ./Desktop 目录中找到任何文件,即文件(不是目录、符号链接等...)

我知道联机帮助页有时可能非常技术性,但“man find”将为您提供大量其他可能有帮助的选项,以及一些可能有助于解决常见问题的示例。

【讨论】:

  • 我现在知道我的困惑是什么了。 -type 不是单字母选项,而是在 OS X 的 find 手册中称为 expression 的多字母选项。
【解决方案3】:

我想你想要的是:

find ./ -name Desktop

【讨论】:

    【解决方案4】:

    嗯,你可以通过多个目录来搜索查找:

    $ find --help
    Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
    [...]
    

    注意“[path...]”表示您可以指定多个路径。

    因此,您的示例将在 ./(当前目录)下找到桌面下的所有文件和目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多