为什么我使用以下命令得到几乎重复的条目(有或没有起点。):
find . * -type f | grep '082235'
./Takeout-1/Google Photos/2017-12-07/20171207_082235.jpg.json
./Takeout-2/Google Photos/2017-12-07/20171207_082235.jpg
Takeout-1/Google Photos/2017-12-07/20171207_082235.jpg.json
Takeout-2/Google Photos/2017-12-07/20171207_082235.jpg
find 是否有一个调整/选项来消除每个重复项?
最佳答案
find 命令可以采用零个或多个起点,即要搜索其子目录的文件或目录。起始点也可以是 shell 将展开的 glob,例如 *
,它展开为当前目录中所有非隐藏文件和目录的列表。 Find 按顺序遍历其起点,因此如果通过不同起点可达的文件重叠,它可能会输出重复的文件和/或目录。
最简单的例子是,如果您位于包含文件 foo
的目录中,
$ find foo foo
将生成以下输出:
foo
foo
通过运行命令 find 。 *
您提供的起点:首先,当前目录,.
;其次,该目录中的所有非隐藏文件。这自然会创建重复的输出:以 .
作为起点找到的每个常规文件,该文件不是顶层的隐藏文件(即 ./.bar
文件)并且不包含在顶层的隐藏目录中(即 ./.baz/
目录)也将出现在列表的第二部分中,没有前导 ./
.
你可能只是想运行
$ find . -type f
请注意,如果您正在运行 find 。 *
不选择带有 -type f
条件的常规文件,会有一个不一定涉及仅出现一次的隐藏文件或目录的项目:.
条目。
关于bash - 使用 find 命令重复结果条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51456961/