通常,人们会看到如下所示的find
命令:
$ find . -name foo.txt
Run Code Online (Sandbox Code Playgroud)
当从当前目录开始搜索时。我发现在我的机器(Ubuntu、Cygwin)上我得到了相同的结果,但没有点。
为什么通常包括在内?它只是一个明确的约定,还是某些系统需要它?
Cal*_*leb 27
某些版本*find
要求您提供路径参数,该参数是开始搜索的目录。点.
简单地表示当前目录通常是您要搜索的位置。
您可以将其替换为您想要作为搜索基础的任何路径。在某些版本的 find 中,这可以保留,因为如果不存在路径参数,则隐含当前目录。
您可以man find
在 shell 中运行以获取有关参数的详细信息。例如,我的用法概要表明路径参数是可选的(在方括号内[]
):
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
Run Code Online (Sandbox Code Playgroud)
如果您find
完全不带任何参数运行 my ,将从当前文件夹开始的所有文件和目录都将被返回。您的示例只是明确指出搜索应该从.
表达式开始并将其包含-name foo.txt
为搜索过滤器之一。
* 值得注意的是所有BSD 变体和任何严格遵守POSIX 标准的东西。GNU find允许它是可选的。
例如,AIX 版本的 find 需要路径,如果未提供路径,则不会运行。
# oslevel -s
5300-08-03-0831
# find -name bob
Usage: find [-H | -L] Path-list [Expression-list]
# oslevel -s
6100-03-01-0921
# find -name bob
Usage: find [-H | -L] Path-list [Expression-list]
Run Code Online (Sandbox Code Playgroud)
虽然一些 AIX 机器可能安装了 GNU find,它可以在没有路径的情况下处理,
# oslevel -s
6100-03-01-0921
# /opt/freeware/bin/find -version
GNU find version 4.1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9419 次 |
最近记录: |