假设我使用 find 在目录中搜索文件夹。
find "/home/user/Documents" -type d -print
虽然这确实列出了所述位置的所有目录,但我只想获取底层目录的路径。(例如:没有子目录/文件夹的目录)
有没有一种使用 find 的简单方法可以做到这一点?
答案1
我只想获取底层目录的路径
使用-links 2
命令行选项。
如果您的文件系统符合 POSIX 标准,那么您可以使用
-links
(即,一个目录对其中的每个子目录都有一个链接,一个来自其父目录的链接以及一个到其自身的链接,因此如果它没有子目录,则有 2 个链接数)。以下命令应该可以执行您想要的操作:
find dir -type d -links 2
但是,它似乎无法在 Mac OS X 上运行(正如 @Piotr 提到的)。这是另一个较慢的版本,但可以在 Mac OS X 上运行。它基于他的版本,并进行了更正以处理目录名称中的空格:
find . -type d -exec sh -c '(ls -p "{}"|grep />/dev/null)||echo "{}"' \;