我有一个包含一堆子目录的目录。我只想列出其中包含两个以上文件的所有子目录。我不确定该怎么做。
最好有一条语句将打印包含2个或更少文件的目录,以确认我仅获得正确的目录。
我使用的是我在其他地方看到的命令,但这也在子目录中搜索子目录,我不希望这样。我只想知道目录的第一级中是否有两个以上的文件。
$ find . -type f -printf '%h\n' | sort | uniq -d
我尝试过-maxdepth 1
,但什么也没得到。只是一个“。”我假设这意味着整个目录?
答案 0 :(得分:3)
使用-maxdepth 1
只是在目录的第一级(即目录本身)上进行搜索。要在子目录中进行搜索,我必须使用-maxdepth 2
,它解决了我的问题。
使用的命令是$ find . -maxdepth 2 -type f -printf '%h\n' | sort | uniq -d
。
如果将-maxdepth
放在-type
之后,则会收到警告。
在命令末尾,我只是通过管道wc -l
来查看正在获取的目录,而不是整个目录中的目录。