내 루트 디렉터리 파일의 누적 크기를 깊이 1로 표시해야 합니다 /
. 쉬워 보이지만 어느 것이 가치가 있는지 실행할 수 없습니다.
트리 명령에 누적 크기가 표시되지 않습니다.
tree --du -h -L 1
.
├── [ 7] bin -> usr/bin
├── [4.0K] boot
├── [ 21K] desktopfs-pkgs.txt
├── [4.2K] dev
├── [ 12K] etc
├── [4.0K] home
├── [ 7] lib -> usr/lib
├── [ 7] lib64 -> usr/lib
├── [ 16K] lost+found
├── [4.0K] media
├── [4.0K] mnt
├── [4.0K] opt
├── [ 0] proc
├── [4.0K] root
├── [4.8K] rootfs-pkgs.txt
├── [ 800] run
├── [ 7] sbin -> usr/bin
├── [ 19] snap -> /var/lib/snapd/snap
├── [4.0K] srv
├── [ 0] sys
├── [ 520] tmp
├── [4.0K] Untitled Folder
├── [4.0K] usr
└── [4.0K] var
또한 du
다음 명령은
du -h -d 1 /
8,0K /media
du: cannot read directory '/sys/kernel/tracing': Permission denied
du: cannot read directory '/sys/kernel/debug': Permission denied
du: cannot read directory '/sys/fs/pstore': Permission denied
du: cannot read directory '/sys/fs/bpf': Permission denied
0 /sys
166G /mnt
du: cannot read directory '/run/udisks2': Permission denied
du: cannot read directory '/run/wpa_supplicant': Permission denied
du: cannot read directory '/run/user/1000/systemd/inaccessible/dir': Permission denied
du: cannot read directory '/run/svnserve': Permission denied
du: cannot read directory '/run/sudo': Permission denied
du: cannot read directory '/run/lightdm': Permission denied
du: cannot read directory '/run/lock/lvm': Permission denied
du: cannot read directory '/run/systemd/unit-root': Permission denied
du: cannot read directory '/run/systemd/inaccessible/dir': Permission denied
1,6M /run
du: cannot read directory '/home/max/.cache/yay/wine-stable/pkg': Permission denied
du: cannot read directory '/home/max/.cache/yay/gnuradio-git/pkg': Permission denied
du: cannot read directory '/home/max/.cache/yay/pamac-classic/pkg': Permission denied
du: cannot read directory '/home/max/.cache/yay/wine-stable-next/pkg': Permission denied
du: cannot read directory '/home/max/.cache/yay/pamac-aur/pkg': Permission denied
du: cannot read directory '/home/max/.cache/paru/clone/qm-dfu-util-git/pkg': Permission denied
du: cannot read directory '/home/lost+found': Permission denied
146G /home
.
.
.
Goes so on
깊이가 1개만 필요하지만 du -h -d 1 /
명령에 권한 거부가 표시됩니다. 내가 제공하려는 가장 깨끗한 보기를 얻으려면 어떻게 무시할 수 있습니까 root permission
? 하지만 작은 오류가 표시됩니다.
sudo du -h -d 1 /
8,0K /media
0 /sys
166G /mnt
du: cannot access '/run/user/1000/gvfs': Permission denied
1,6M /run
146G /home
du: cannot access '/proc/12363/task/12363/fd/4': No such file or directory
du: cannot access '/proc/12363/task/12363/fdinfo/4': No such file or directory
du: cannot access '/proc/12363/fd/3': No such file or directory
du: cannot access '/proc/12363/fdinfo/3': No such file or directory
0 /proc
19M /etc
16K /lost+found
0 /dev
49G /usr
41G /var
4,0K /Untitled Folder
9,1M /srv
2,6G /opt
1,8M /root
51M /tmp
98M /boot
403G /
온라인에서 많은 예제를 살펴보았는데 명령이 훌륭해 보이지만 내 터미널어떤 쉘 : 기본적으로 Manjaro에서 bash 5.1.0완벽함과는 조금 거리가 있는 듯
답변1
디스크 사용량을 확인할 때 가상 파일 시스템의 내용(예: GNU/Linux: /dev
, /proc
, /run
및 /sys
) /tmp
은 일반적으로 관련이 없습니다. 그것들을 제거하면 일이 더 쉬워질 것입니다.
를 사용하려면 du
마운트된 파일 시스템의 내용만 나열하려는 경우 /
(다른 마운트 지점의 내용은 무시) 다음을 실행할 수 있습니다.
sudo du -h -d1 -a -x /
-x
또는 ("단일 파일 시스템") 옵션을 사용하고 싶지 않은 경우 :
sudo du -h -d1 -a --exclude=/dev --exclude=/proc \
--exclude=/run --exclude=/sys --exclude=/tmp /
( -a
일반 파일도 표시할 수 있습니다.)du
tree
출력의 깊이는 제한될 수 없지만-L
그리고또한 디렉터리의 전체 깊이 크기(즉, 포함된 모든 하위 디렉터리 및 파일 포함)를 표시하고 형식화된 출력을 생성한 후 필터링하도록 할 수 있습니다. 예를 들어 JSON 및 다음을 사용합니다 jq
.
sudo tree --du -a -x -h -J / | jq 'del(.[]?[]?[]?[]?[]?)'
(불행히도 tree
JSON 출력에는 종종 잘못된 형식의 비트가 포함되어 있어 이 솔루션을 매우 신뢰할 수 없게 만듭니다.)
당신은 또한 참조 할 수 있습니다Linux에서 디스크 공간이 어디로 가는지 추적하시나요?질문에 언급된 도구 이외의 도구에 관심이 있는 경우.
답변2
stderr
오류를 리디렉션하여 간단히 오류를 필터링할 수 있습니다 /dev/null
.
sudo du -h -d 1 / 2>/dev/null
깊이를 지정하지 않지만 와일드카드를 사용하는 또 다른 가능성은 다음과 같습니다.
sudo du -sh /* 2>/dev/null