列出包含两个以上文件的目录

时间:2019-08-06 23:08:09

标签: unix ls csh

我有一个包含一堆子目录的目录。我只想列出其中包含两个以上文件的所有子目录。我不确定该怎么做。

最好有一条语句将打印包含2个或更少文件的目录,以确认我仅获得正确的目录。

我使用的是我在其他地方看到的命令,但这也在子目录中搜索子目录,我不希望这样。我只想知道目录的第一级中是否有两个以上的文件。 $ find . -type f -printf '%h\n' | sort | uniq -d

我尝试过-maxdepth 1,但什么也没得到。只是一个“。”我假设这意味着整个目录?

1 个答案:

答案 0 :(得分:3)

使用-maxdepth 1只是在目录的第一级(即目录本身)上进行搜索。要在子目录中进行搜索,我必须使用-maxdepth 2,它解决了我的问题。

使用的命令是$ find . -maxdepth 2 -type f -printf '%h\n' | sort | uniq -d
如果将-maxdepth放在-type之后,则会收到警告。

在命令末尾,我只是通过管道wc -l来查看正在获取的目录,而不是整个目录中的目录。