我想要一个Linux命令以树的形式打印目录和文件结构,可能在每个文件之前使用Unicode图标,并提示在Markdown文档中包含输出的最佳语法,行之间没有空格。

例子:

.
├── _config.yml
├── _drafts
│   ├── begin-with-the-crazy-ideas. Textile
│   └── on-simplicity-in-technology. Markdown
├── _includes
│   ├── footer.html
│   └── header.html
├── _layouts
│   ├── default.html
│   └── post.html
├── _posts
│   ├── 2007-10-29-why-every-programmer-should-play-nethack.textile
│   └── 2009-04-26-barcamp-boston-4-roundup.textile
├── _data
│   └── members.yml
├── _site
└── index.html

当前回答

如果您正在使用Atom编辑器,您可以通过ascii-tree包来实现这一点。

你可以写出下面的树:

root
+-- dir1
    +--file1
+-- dir2
    +-- file2

并通过选择它并按ctrl-alt-t将其转换为以下内容:

root
├── dir1
│   └── file1
└── dir2
    └── file2

其他回答

您可以使用tree生成与示例非常相似的内容。获得输出后,可以将其包装在<pre>标记中,以保留纯文本格式。

如果您关心Unicode字符,您可以使用ASCII来构建结构,这样您的示例结构就变成了

.
+-- _config.yml
+-- _drafts
|   +-- begin-with-the-crazy-ideas.textile
|   +-- on-simplicity-in-technology.markdown
+-- _includes
|   +-- footer.html
|   +-- header.html
+-- _layouts
|   +-- default.html
|   +-- post.html
+-- _posts
|   +-- 2007-10-29-why-every-programmer-should-play-nethack.textile
|   +-- 2009-04-26-barcamp-boston-4-roundup.textile
+-- _data
|   +-- members.yml
+-- _site
+-- index.html

这类似于选择ANSI输出时使用的格式树。

这里有一个NPM模块:

npm dree

它允许您将目录树表示为字符串或对象。将它与命令行一起使用将允许您将表示保存在txt文件中。

例子:

$ npm dree parse myDirectory --dest ./generated --name tree

如果你想动态生成它,我建议使用Frontend-md。使用起来很简单。

我遵循了另一个存储库中的示例,并将目录结构包装在一对三重反引号(' ' ')中:

```
project
│   README.md
│   file001.txt    
│
└───folder1
│   │   file011.txt
│   │   file012.txt
│   │
│   └───subfolder1
│       │   file111.txt
│       │   file112.txt
│       │   ...
│   
└───folder2
    │   file021.txt
    │   file022.txt
```