‘du’의 정직함과 ‘tree’의 들여 쓰기 된 형식을 결합 할 수 있는지 궁금합니다. 디렉토리 크기 목록을 원할 경우 :
du -hx -d2
… 두 레벨을 깊이 표시하고 모든 크기 요약은 정직하지만 하위 디렉토리는 들여 쓰기가 없습니다. 반면에 :
tree --du -shaC -L 2
… 잘 들여 들여 쓰기를하지만보고 된 크기는 거짓말입니다. 실제 크기를 얻으려면 다음을 수행해야합니다.
tree --du -shaC
… 즉, ‘tree’가 전체 디렉토리 구조를 보여 주면 실제 크기 만 가져옵니다. 실제로 표시하려는 하위 디렉토리의 수에 관계없이 항상 정확한 크기 요약을 가질 수 있기를 원합니다. 나는 종종 이것을한다 :
tree -du -shaC | grep "\[01;34m"
… 디렉토리를 제외한 모든 것을 제거하고 멋지게 들여 쓰기 …하지만 디스플레이를 주어진 수 수준 (요약을 놓지 않고)으로 제한하는 쉬운 방법은 없습니다. 방법이 있습니까? 아마도 올바른 스위치를 놓쳤습니다 …
답변
ncdu 도 확인 하십시오 :
http://dev.yorhel.nl/ncdu
이 페이지에는 다른 “유사한 프로젝트”도 나와 있습니다.
gt5-ncdu와 매우 유사하지만 다른 접근 방식.
tdu-또 다른 작은 ncurses 기반 디스크 사용 시각화 유틸리티.
TreeSize-GTK (트 리뷰 사용)
Baobab-GTK, 파이 차트, 트 리뷰 및 트리 맵을 사용합니다. 그놈과 함께 제공됩니다.
GdMap-GTK, 트리 맵 디스플레이.
Filelight-파이 차트를 사용하는 KDE
KDirStat-트리 맵 디스플레이가있는 KDE.
QDiskUsage-파이 차트를 사용하는 Qt.
xdiskusage-트리 맵 표시가있는 FLTK.
fsv-3D 시각화
Philesight-Filelight의 웹 기반 복제본.
답변
색상 코드를 grep하지 않아도됩니다 . -d
옵션은 list directories only
입니다.
이것은 당신이 원하는 것을하는 것 같습니다 :
$ tree --du -d -shaC | grep -Ev '( *[^ ]* ){2}\['
.
├── [ 18] dir1
├── [ 30] dir2
├── [ 205] junk
│ ├── [ 18] dir1
│ ├── [ 30] dir2
│ └── [ 76] dir3
├── [ 119] merge
└── [ 20] stuff
4.4K used in 10 directories
이 grep
명령은 공백이 하나 뒤에 있고 공백이 아닌 공백이 뒤 따르는 모든 행을 두 번 제거한 다음 a를 제거 [
합니다.
당신은 하나의 깊이를 원하는 경우에 {} 중괄호 바운드 수를 변경 {1}
하기보다는 {2}
. 3의 깊이를 원한다면 동일하게 변경하십시오 {3}
.
이것을 다음과 같이 쉘 함수로 바꿀 수 있습니다.
mytreedu() {
local depth=''
while getopts "L:" opt ; do
case "$opt" in
L) depth="$OPTARG" ;;
esac
done
shift "$((OPTIND-1))"
if [ -z "$depth" ] ; then
tree --du -d -shaC "$@"
else
local PATTERN='( *[^ ]* ){'"$depth"'}\['
tree --du -d -shaC "$@" | grep -Ev "$PATTERN"
fi
}
이것은 옵션과 옵션 이있는 경우 명령 행 에서 옵션과 인수 getopts
를 “훔치는” 데 사용 됩니다 . 명령 행에 옵션 이 없으면 작동합니다.-L
tree
-L n
다른 모든 옵션과 인수는 tree
명령 으로 전달됩니다 .
local PATTERN=...
줄은 정말 필요하지 않습니다. 나는 한 줄에 들어가고 여기에서 단어 줄 바꿈이되지 않도록하기 위해 그렇게했습니다 U&L
. 정규 표현식은 아마도 직접적으로 진행되어야 tree | grep ...
합니다.
다음과 같이 실행하십시오.
mytreedu
또는
mytreedu -L 2 /path/to/dir/
답변
dutree 를 사용할 수 있습니다
- LS_COLORS 환경 변수에 따른 컬러 출력.
- 파일 시스템 트리를 표시합니다
- 작은 파일을 집계하는 기능
- 파일 또는 디렉토리를 제외하는 기능
- 다른 디렉토리를 비교하는 능력
- Rust로 작성된 빠른
답변
이 작업을 수행하는 완벽한 명령 도구는 없지만 필자는 두 가지 방법을 찾았습니다.
-
폴더와 파일 크기를 모두 표시하지만 트리 모드에서는 표시되지 않습니다.
du -ah --max-depth=1 /var/log
-
트리 모드로 표시되지만 파일 크기 만 표시되며 폴더 수는
tree -ah /var/log -L 1
답변
cas에서 영감을 얻은 지금 나는 이것을하고 있습니다 :
treee ()
{
integer levels=$(( ($1 + 1) * 4 ))
tree --du -shaC | grep "\[01;34m" | grep -Ev "^[^\[]{$levels}\[*"
du -sh .
}