tree
파일을 생성하려는 디렉토리에 cd ~/를 사용하여 여러 출력 파일을 생성할 수 있습니까 tree
?
예를 들어, 이라는 디렉터리가 있습니다 parent-dir
.
하위 parent-dir
디렉토리의 이름은 a
, b
, c
to z
이며 제목이 하위 디렉토리입니다 0-9
.
이러한 하위 디렉터리 내에는 다음과 같은 추가 하위 디렉터리가 있습니다.무작위의소문자/대문자, 숫자, 일부 특수 문자를 사용하세요.tree
(이 수준에서 .txt 출력 파일을 만들고 싶습니다 .)
디렉토리 구조는 다음과 같습니다.
parent-dir ( <-- I will be cd ~/ here and run cmd from here)
|_a
| |_ahgfVFCJC6.h78 ( <-- cmd should create a tree titled ahgfVFCJC6.h78.txt)
| | |_file.jpg
| | |_file.mp4
| |
| |_a34grBVFHEwerv ( <-- cmd should create a tree titled a34grBVFHEwerv.txt)
| |_file.txt
| |_file.mp3
|
|_b
| |_bhlHKH.7tbh ( <-- cmd should create a tree titled bhlHKH.7tbh.txt)
| |_file.png
| |_file.txt
...등...
The .txt files created using `tree`:
ahgfVFCJC6.h78.txt
a34grBVFHEwerv.txt
bhlHKH.7tbh.txt
should be outputted in a specified directory (example: ~/Desktop/Tree)
수천 개의 유사한 디렉토리 (그러나 이름은 다름) 가 parent-dir
있으므로 그 안에서 명령을 실행하고 싶습니다 . 모든 하위 디렉터리에 CD를 넣어야 하면 시간이 너무 많이 걸립니다.a
ahgfVFCJC6.h78
답변1
존재하다 zsh
:
for d (parent-dir/*/*(N/)) (cd -- $d && tree) > output-dir/$d:t.txt
답변2
tree 명령을 사용하기 위해 디렉토리로 CD를 이동할 필요가 없으며 tree
동시에 사용할 여러 디렉토리를 지정할 수 있습니다.
tree /dir1 /dir2 /dir3 -o /some/other/path/outputfile -n
또한 stdout 리디렉션을 사용하려는 경우 >
거기 >>
에서도 경로를 지정할 수 있습니다.
tree /dir1 /dir2 /dir3 -n > /some/other/path/outputfile
확인하려는 경로가 포함된 파일이 있는 경우 다음을 수행하여 각 디렉터리에 출력 파일을 만들 수 있습니다.
for i in $(cat filewithdirs); do tree "$i" -o "$i/outputfile"; done
상위 디렉터리 내의 모든 하위 디렉터리 경로를 얻으려면 다음과 같이 사용할 수 있습니다.
tree parentdir/ -L 1 -fid
이것은 들여쓰기 없이 해당 경로와 함께 parentdir의 모든 첫 번째 수준 하위 디렉터리를 인쇄합니다.
-L 옵션은 원하는 레이어의 깊이를 지정합니다.
-f는 경로 접두어를 인쇄하는 옵션을 지정합니다.
-i 들여쓰기를 사용하지 않도록 지정합니다.
-d는 디렉토리만 나열되도록 지정합니다.
-o는 표준 출력 대신 출력 파일을 사용하도록 지정합니다.