我想列出我的路径中所有非隐藏的文件和目录。
这意味着以 开头的文件.
应该从结果中排除,以及路径包含隐藏目录的文件:
foo/bar/.bazz.rc # Exclude
foo/.bar/bazz.rc # Exclude
我该怎么做?我试过:
find -maxdepth 2 -not -iname "*/.*"
但我的结果中仍然有隐藏文件。
答案1
使用path
而不是iname
:
find -not -path '*/.*'
*
- 匹配任何字符串。/
- 目录分隔符。
答案2
您也可以做相反的事情并匹配它们。它允许find
修剪,从而防止深入匹配的目录,这可以大大加快您的搜索速度。
find -path '*/.*' -prune -o -print
-print
右侧的明确使用仅打印不匹配的对象,在本例中是可见的文件和文件夹。