制定关于存储库的指南,它应该可以帮助读者只浏览构成手头任务核心的子文件夹中的文件夹和文件,而无需任何子子文件夹。同时,它还有助于在同一树中看到此子文件夹嵌入到第 1 级的完整存储库文件夹和文件树中,即根目录下的所有内容,但仅此而已。
目前的解决方法是将一棵树粘贴到另一棵树中,并使用制表符进行正确缩进:
- 根文件夹的完整文件夹和文件列表
- 只有一个嵌套文件夹(
scripts
),其中包含该文件夹的第一个子文件夹的所有文件夹和文件,因此没有孙级。
$ tree -La 1
和
$ tree ./scripts -La 1
$ tree -La 1
.
├── application
...
├── scripts
$ tree ./scripts -La 1
./scripts
├── crontab
...
...
└── VERSION
有没有办法只用命令行来做到这一点?这样输出就会立即出现:
.
├── application
...
├── scripts
├── crontab
some_file1
...
...
└── VERSION
some_file2
这个问题对于 Windows 和 Linux 都可以回答,允许使用 shell 脚本。
答案1
这个答案适用于Linux。
如果您tree
支持,--fromfile
那么您可以从阅读find
。有怪癖我将用 来对抗其中一个sed
。我希望你们find
支持-maxdepth
。GNUfind
支持它,我假设你们可以使用 GNU find
。
find . ./scripts -maxdepth 1 | sed 's|^./||' | tree --fromfile .
./scripts
将在 的输出中出现两次find
,但tree
应该将其压缩为一次。
添加更多感兴趣的路径很简单。例如:
(cd / && find . ./etc ./var/log -maxdepth 1 | sed 's|^./||' | tree --fromfile .)
我的tree
终端输出颜色为蓝色,目录为蓝色。tree --fromfile
通过尾部斜杠识别目录。find
不打印尾部斜杠,除非我们明确要求。我们的例子已修复:
(cd / && find . ./etc ./var/log -maxdepth 1 -type d -printf '%p/\n' -o -print \
| sed 's|^./||' | tree --fromfile .)