我正在寻找一个 shell 命令来获取复杂目录结构中的所有文件。我所说的复杂目录结构是指有一个包含超过 150 个子文件夹的根文件夹,并且每个子文件夹至少有 3 个子文件夹。
答案1
这是微不足道的:
find /directory -type f
答案2
作为由@michael-hampton 建议 find
是要走的路。然而,还需要更多的解释。该选项-type
可以有多个值,请查看手册页 ( man find
)。这是一个快速定义:
如果您仅查找常规文件:
find <path> -type f
如果您正在寻找目录之外的任何内容:
find <path> ! -type d
如果您正在寻找常规文件和符号链接:
find <path> -type f -o -type l
(上一个命令查找常规 OR 链接)
答案3
find
同样有效。但如果你使用的是zshell( zsh
):
仅适用于文件:
ls -al path/**/*(.)
仅适用于目录:
ls -al path/**/*(/)
请参阅man zshexpn
参考资料 获取更多示例。特别是“glob 限定符”部分。
答案4
最简单的事情是
ls -R directory_name