#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