다른 모듈 폴더와 함께 프로젝트 폴더를 다른 폴더에 생성하는 스크립트를 만들고 있습니다. 생성된 프로젝트 폴더 구조가 최종 트리에서 어떻게 보이는지 보여주고 싶지만 시각화가 더 명확해지도록 다른 모든 폴더를 확장하지 마세요.
예를 들어, tree
이 작업을 혼자 수행하면 다음과 같은 일이 발생합니다.
.
├── CMakeLists.txt
├── cfg
│ ├── hsm_engine_cfg.h
│ ├── osal_rtos_defs.h
│ ├── system_events.h
│ ├── system_tasks.h
│ ├── system_trace_cfg.h
│ └── test_delete_cfg.h
├── hsm-engine
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── component.mk
│ ├── docs
│ │ ├── HSM-Engine.mdj
│ │ ├── images
│ │ │ ├── choiceState.png
│ │ │ ├── inconditionalTransition.png
│ │ │ ├── inconditionalTransitionTwoEvents.png
│ │ │ ├── inconditionalTransitionTwoEventsOneGuard.png
│ │ │ ├── inconditionalTransitionWithActions.png
│ │ │ ├── simpleStateEmpty.png
│ │ │ ├── simpleStateEntry.png
│ │ │ ├── simpleStateEntryDo.png
│ │ │ └── simpleStateEntryExit.png
│ │ └── readme.md
│ ├── hsm_engine.c
│ ├── hsm_engine_cfg.h.txt
│ ├── include
│ │ ├── hsm_engine.h
│ │ ├── hsme_history_entry_struct_macro.h
│ │ ├── hsme_hsm_handler_macro.h
│ │ ├── hsme_state_transitions_macro.h
│ │ ├── hsme_states_array_macro.h
│ │ └── hsme_states_enum_macro.h
│ └── tools
│ ├── hsm-parser
│ └── hsm-parser.exe
├── osal
│ ├── CMakeLists.txt
│ ├── FreeRTOSConfig.h.txt
│ ├── Kconfig
│ ├── README.md
│ ├── component.mk
│ ├── include
│ │ ├── osal.h
│ │ ├── osal_events.h
│ │ ├── osal_task_sync.h
│ │ └── osal_tasks.h
│ ├── osal_events.c
│ ├── osal_rtos_defs.h.txt
│ ├── osal_task_sync.c
│ ├── osal_tasks.c
│ ├── system_events.h.txt
│ └── system_tasks.h.txt
├── test-delete
│ ├── CMakeLists.txt
│ ├── include
│ │ ├── test_delete_api.h
│ │ └── test_delete_event_id.h
│ ├── test_delete.c
│ ├── test_delete.h
│ └── test_delete_cfg.h.txt
├── test-gtest
│ ├── CMakeLists.txt
│ ├── README.md
│ └── test_delete_testsuite.cpp
├── test_delete_main.c
└── trace
├── CMakeLists.txt
├── Kconfig
├── README.md
├── component.mk
├── include
│ ├── colors.h
│ └── system_trace.h
├── system_trace.c
└── system_trace_cfg.h.txt
보시다시피 출력량이 너무 많아서 어떤 폴더를 만들고 싶은지 명확하지 않습니다 test-delete
.
내가 시도한 것은 tree -P 'test-delete*|test_delete*'
내가 필요한 것에 정말 가깝습니다. 그것은 다음을 제공합니다:
.
├── cfg
│ └── test_delete_cfg.h
├── hsm-engine
│ ├── docs
│ │ └── images
│ ├── include
│ └── tools
├── osal
│ └── include
├── test-delete
│ ├── include
│ │ ├── test_delete_api.h
│ │ └── test_delete_event_id.h
│ ├── test_delete.c
│ ├── test_delete.h
│ └── test_delete_cfg.h.txt
├── test-gtest
│ └── test_delete_testsuite.cpp
├── test_delete_main.c
└── trace
└── include
하지만 여전히 모든 폴더를 확장하고 있는데 이는 이상적이지 않습니다. 올바른 구성을 찾고 있으므로 tree
다음과 같습니다.
.
├── cfg
│ └── test_delete_cfg.h
├── hsm-engine
├── osal
├── test-delete
│ ├── include
│ │ ├── test_delete_api.h
│ │ └── test_delete_event_id.h
│ ├── test_delete.c
│ ├── test_delete.h
│ └── test_delete_cfg.h.txt
├── test-gtest
├── test_delete_main.c
└── trace
여기에서 볼 수 있듯이. 폴더 만 확장 cfg
하고 test-delete
나머지는 확장하지 마세요. 이것을 달성할 수 있는 방법이 있나요?
답변1
파일 이름에 개행 문자가 포함되어 있지 않다고 가정하면 언제든지 다음과 같이 할 수 있습니다.
find . -path '*test[-_]delete*' | tree --fromfile /dev/stdin
또는
find . | grep 'test[-_]delete' | tree --fromfile /dev/stdin
답변2
이름에 "test-delete"가 포함된 파일을 찾는 것이 목표라면 다음을 사용하는 것이 더 좋습니다 find
.
find . -name test-delete*