我想知道是否有一种方法可以指定 zsh 中给定目录下的前 N 个文件。
我对递归枚举的解决方案感兴趣(即,考虑枚举路径下递归的任何文件)和非递归(仅考虑严格位于给定文件夹下的那些文件)。
谢谢!
答案1
它是 zsh,所以确实有一个全局限定符为了那个原因。
echo *([1,42]) # The first 42 files in the current directory, in lexicographic order
echo **/*([1,42]) # The first 42 files in a depth-first traversal
echo **/*(od[1,42]) # The first 42 files in a breadth-first traversal
其他可能有用的限定符,例如以下表达式包括点文件 ( D
),限制为常规文件 ( .
) 和常规文件的符号链接 ( -
),如果没有匹配项,则扩展为空列表 ( N
):
echo *(-.DN[1,42])