Как использовать команду bash tree для текстового файла со списком каталогов

#bash #tree

Вопрос:

У меня есть текстовый файл со списком каталогов некоторых папок, таких как

 ./boost/1.75.0_2/.brew/boost.rb
./boost/1.75.0_2/include/boost/accumulators/accumulators.hpp
./boost/1.75.0_2/include/boost/accumulators/accumulators_fwd.hpp
./boost/1.75.0_2/include/boost/accumulators/statistics.hpp
./boost/1.75.0_2/include/boost/container/node_allocator.hpp
./boost/1.75.0_2/include/boost/container/node_handle.hpp
./boost/1.75.0_2/include/boost/container/options.hpp
 

и я хотел бы использовать команду «дерево«, чтобы получить следующий вывод со структурой каталогов:

 └── 1.75.0_2
    ├── INSTALL_RECEIPT.json
    ├── README.md
    ├── include
    │   └── boost
    │       ├── accumulators
    │       │   ├── accumulators.hpp
    │       │   ├── accumulators_fwd.hpp
    │       │   ├── framework
    │       │   │   ├── accumulator_base.hpp
    │       │   │   ├── accumulator_concept.hpp
    │       │   │   ├── accumulator_set.hpp
    │       │   │   ├── accumulators
    │       │   │   ├── depends_on.hpp
    │       │   │   ├── external.hpp
    │       │   │   ├── extractor.hpp
    │       │   │   ├── features.hpp
    │       │   │   └── parameters
    │       │   ├── numeric
    │       │   │   ├── detail
    │       │   │   ├── functional
    │       │   │   ├── functional.hpp
 

Я не могу получить доступ к файловой системе, у меня есть только текстовый файл со списком каталогов. Возможно ли использовать tree его в этом файле?

Комментарии:

1. У вас достаточно прав, чтобы писать /tmp ? Моя идея заключается в том, что вы можете воссоздать структуру файла на основе того, что у вас есть в текстовом файле, а затем выполнить в tree нем команду.

Ответ №1:

В качестве быстрого взлома вы можете воссоздать фактическую файловую структуру (это можно сделать где угодно: в /tmp виртуальной машине или даже на удаленной машине), а затем запустить tree :

 mkdir tmptree
cd tmptree
sed 's/./\amp;/g' yourFile | xargs mkdir -p
tree
cd ..
rm -r tmptree