find 中 -max深度 1 -min深度 1 的替代方案

find 中 -max深度 1 -min深度 1 的替代方案

我经常发现自己find只搜索目录的第一代子目录,尤其是在替换*.有没有比指定更方便的方法来做到这一点-maxdepth 1 -mindepth 1

我还应该使用其他工具吗?

答案1

如果您使用的是 shell,例如bash您可以设置dotglobshell 选项,让星号通配符*匹配所有文件,而不仅仅是那些不以点字符开头的文件.

对于任何给定的目录,这三个示例都应返回同一组文件

示例1
find . -mindepth 1 -maxdepth 1 -printf '%f\n'
示例2
dg=$(shopt -q dotglob)
shopt -s dotglob
echo *
[[ $dg -eq 1 ]] && shopt -u dotglob
实施例3
( shopt -s dotglob; echo * )

相关内容