
Допустим, у меня есть репозиторий git, вывод дерева которого выглядит следующим образом:
.
├── .gitignore
├── untracked-file
├── rep1
│ └── tracked-file1
├── rep2
│ └── repb
│ └── tracked-file2
└── rep3
└── ignored-file
И .gitignore
с rep3/ignored-file
.
git ls-files
вывод будет:
rep1/tracked-file1
rep2/repb/tracked-file2
Как я могу получить:
.
├── .gitignore
├── rep1
│ └── file1
└── rep2
└── repb
└── file2
Вместо ?
Я думаю, это хорошее начало:
tree -P <(git ls-files | tr '\n' '|')
Так как -P
означает только список, следующий за шаблоном, но я не знаю, как добавить в него скобки.
решение1
Звучит какгитриутилита (с/о создатель)jpwilliams) может подойти. (Я признаю, что для этого, однако, потребуется использовать другой сторонний инструмент.)
Аналогично, этодругой ответуказывает на использование другого инструмента:дерево-расширенный(с/о создателя)рулиотано).