在 Linux 中,我想找出所有文件夹/子文件夹名称并重定向到文本文件
我试过 ls -alR > list.txt
了,但它提供了所有文件+文件夹
您可以使用find
find . -type d > output.txt
或者tree
tree -d > output.txt
tree
, 如果您的系统上没有安装。
如果您正在使用ubuntu
sudo apt-get install tree
如果您正在使用mac os
.
brew install tree
find . -type d > list.txt
将列出当前路径下的所有目录和子目录。如果要列出当前路径以外的路径下的所有目录,请将 更改.
为该其他路径。
如果要排除某些目录,可以用否定条件过滤掉它们:
find . -type d ! -name "~snapshot" > list.txt
除了find
在其他答案中列出的那样,更好的外壳允许递归 glob 和过滤 glob 匹配,zsh
例如......
ls -lad **/*(/)
...列出所有目录,同时保留您想要的所有“-l”详细信息,否则您需要使用类似...的东西重新创建这些详细信息
find . -type d -exec ls -ld {} \;
(不像其他答案建议的那么容易)
find 的好处是它更独立于 shell - 更便携,甚至对于system()
来自 C/C++ 程序等的调用也是如此。