如何使用find命令查找文件名目录并删除重复项?

时间:2016-02-02 14:27:09

标签: linux unix find

我正在使用find / -name "*.dbf"来查找所有.dbf文件的目录。 它给了我目录和文件名。

输出应该只是没有重复的目录。我不需要看文件名。

3 个答案:

答案 0 :(得分:0)

您可以通过dirname传递结果,然后删除重复项:

find / -name \*.dbf -print0 | xargs -0 -n1 dirname | sort | uniq

答案 1 :(得分:0)

另一种解决方案:find / -name "*.dbf" -exec dirname {} \; 2> /dev/null | sort -u

答案 2 :(得分:0)

我可以通过两种方式理解你的问题:

  1. 要仅查找与<name_pattern>匹配且没有重复项的目录,您可以使用-type管道find sort | uniq选项find / -name '<name_pattern>' -type d | sort | uniq

    find / -name '<name_pattern>' | perl -pe 's/(.*\/).*$/$1/' | sort | uniq

  2. 要查找所有文件,但只返回包含匹配文件但没有重复项的目录:

    {{1}}