기억의 습작

리눅스 명령어 tree 오픈소스 본문

OS/Linux

리눅스 명령어 tree 오픈소스

뿌사리다 2021. 8. 26. 00:01

인트라넷 환경에서 tree명령어를 사용하고 싶을 때 오픈소스를 받아 컴파일 한 후 사용하면 된다.

 

리눅스 tree 명령어 자바소스

import java.io.File;
import java.util.Arrays;

public class Tree {
  private int dirCount;
  private int fileCount;

  public static void main(String[] args) {
    String directory = ".";
    if (args.length > 0) {
      directory = args[0];
    }
    (new Tree()).print(directory);
  }

  public Tree() {
    this.dirCount = 0;
    this.fileCount = 0;
  }

  public void print(String directory) {
    System.out.println(directory);
    walk(new File(directory), "");
    System.out.println("\n" + this.dirCount + " directories, " + this.fileCount + " files");
  }

  private void register(File file) {
    if (file.isDirectory()) {
      this.dirCount += 1;
    } else {
      this.fileCount += 1;
    }
  }

  private void walk(File folder, String prefix) {
    File file;
    File[] fileList = folder.listFiles();
    Arrays.sort(fileList);

    for (int index = 0; index < fileList.length; index++) {
      file = fileList[index];
      if (file.getName().charAt(0) == '.') {
        continue;
      }
      register(file);

      if (index == fileList.length - 1) {
        System.out.println(prefix + "└── " + file.getName());
        if (file.isDirectory()) {
          walk(file, prefix + "    ");
        }
      } else {
        System.out.println(prefix + "├── " + file.getName());
        if (file.isDirectory()) {
          walk(file, prefix + "│   ");
        }
      }
    }
  }
}

오픈소스 자료: https://github.com/kddnewton/tree/blob/main/Tree.java

javac  컴파일러를 이용하여 java 파일을 컴파일 한다.

$ javac Tree.java

 

tree.sh 라는 스크립트를 만든다.

#!/bin/bash
java Tree $1

 

  ~/.bash_profile 이나 ~/.bashrc 같은 환경변수에 alias 설정을 하고 사용한다.

alias tree='/home/ppusari/script/tree/tree.sh'

 

다음과 같이 사용한다.

직접 컴파일하여 사용한 tree 명령어  (본 캡쳐사진은 앞서 설명한 tree.sh 가 아닌 tree2.sh로 새로 만듦)

 


인트라 넷이 아닌 인터넷 환경에서는 apt-get으로 직접 설치해서 사용하면 된다.

 

tree 명령어 설치

$ sudo apt-get install tree

 

apt-get을 통해 설치한 tree  명령어 사용예제

 

tree 명령어 옵션 자료: https://www.javatpoint.com/linux-tree-command

 

 

 

728x90
반응형
LIST