"TREE"를 하위 디렉터리로 사용

"TREE"를 하위 디렉터리로 사용

tree파일을 생성하려는 디렉토리에 cd ~/를 사용하여 여러 출력 파일을 생성할 수 있습니까 tree?

예를 들어, 이라는 디렉터리가 있습니다 parent-dir.

하위 parent-dir디렉토리의 이름은 a, b, cto 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를 넣어야 하면 시간이 너무 많이 걸립니다.aahgfVFCJC6.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는 표준 출력 대신 출력 파일을 사용하도록 지정합니다.

관련 정보