숨겨진 파일 / 폴더가 표시되지 않는 이유는 무엇입니까?


140

나는 du -sch ./*이것을 발견했을 때 아무런 이유없이 비축했을 수있는 큰 쓸모없는 파일을 찾기 위해 시스템을 살펴보고 있었다 .

$ du -sch ./*
du: cannot read directory ‘./drbunsen/.gvfs’: Permission denied
du: cannot read directory ‘./drbunsen/.cache/dconf’: Permission denied
18G ./drbunsen
18G total

$ cd drbunsen/
$ du -sch ./*
601M ./Desktop
20K ./Documents
598M ./Downloads
4.0K ./flash
4.0K ./Music
8.0M ./Pictures
4.0K ./Public
4.0K ./Templates
4.0K ./Ubuntu One
8.0K ./Videos
11G ./VirtualBox VMs
6.9M ./workspace
12G total

숨겨진 파일을 표시하려면 어떻게합니까? du -sch ./.*와 동일한 결과를 제공합니다 du -sch ./*.


du -hs .[^.]* *모든 숨겨진 파일에 대해 제외 . 하고 ..다른 답변이 누락 된 것 같습니다.
laggingreflex

답변:


245

사용하다

du -sch .[!.]* * |sort -h

홈 폴더에.

또는 가장 자주 사용하는 명령은

ncdu

필요한 경우 설치가 쉽습니다.

sudo apt-get install ncdu

1
고마워, 당신은 천재입니다. 나는 bash의 마스터가 아닙니다. 어떻게해야합니까 [!.]?
Dr_Bunsen

10
@ Dr_Bunsen : 단일로 시작하는 모든 파일을 나열하는 glob입니다 .. 여기에 깔끔한 트릭이 있습니다 : 만약 글로브처럼 보이는 것이 무엇인지 모른다면, 달리기 등을 시도하십시오 echo .[!.]*. 그런 다음 쉘은 glob를 확장하고로 전달하여 echo결과 파일 목록을 인쇄합니다.
Tikhon Jelvis

14
이름이 같은 파일을 나열하지 못하면 ..foo이름이로 시작하는 파일에 문제가 발생할 수 있습니다 -. 인수 목록이 너무 길면 실패 할 수도 있습니다. du -ahd1그런 문제는 없을 것입니다.
Stéphane Chazelas

원래 질문과 관련이 없지만 일상적인 사용법과 관련이 있습니다. 'c'스위치를 포함하여 총계를 표시하고 옵션을 약간 재정렬 하여이 명령을 기억하기 쉽도록하는 것이 유용 할 수 있습니다 du -cksh .[!.]* * |sort -h.
Daddy32

56

@ util.joey의 이상한 명령을 기억하기 어려웠 기 때문에 coreutils 메일 링리스트에 동일한 질문이 있습니다. 그리고 Bob Proulx 더 좋고 자연스러운 명령을 제안했습니다 . du -ahd1 | sort -h

현재 디렉토리에있는 모든 파일을 나열하려면 '.'를 사용하십시오. 또는 파일 인수를 전혀주지 마십시오. -d, --max-depth = N 옵션을 사용할 수도 있습니다.

이 시도:

뒤 -hd1


7
-a동등한 옵션을 추가하십시오 .
Stéphane Chazelas 2016 년

6
더 간단하고 기억하기 쉽고 이해하기 쉽기 때문에이 대답은 받아 들여 져야합니다.
Bastien

8

디렉토리 내에서 동일한 명령을 실행 .하면 카운트에서 시작하는 숨겨진 파일이 포함되지 않습니다 . 예를 들어 Steam을 설치 한 경우 기본적으로 게임을 설치하는 것이 기본 ~/.local/share/Steam/이며 게임 자체도 설치됩니다.

bash du -sch .[!.]* *에서 .*glob가 제대로 확장되지 않으므로 분명히 실행해야합니다 . 현재 디렉토리에있는 모든 숨겨진 파일 목록을 포함하도록 확장되어야하므로 아래 zsh또는 다른 쉘에서 du -sch * .*작동 .*해야합니다.


승인. 제대로 확장되지 않는 것처럼 bash에 분명히 문제가 .*있습니다. 그러나 du -sch * .*아래에서 올바른 일을 zsh합니다. bash에서 du -sch .*계산하는 것처럼 보이지만 .파일을 개별적으로 표시하도록 확장되지는 않습니다.
dobey at

나를 위해. *도 ../*로 확장되므로 du는 크기를보고 싶은 디렉토리에서 나갑니다! 대신 ./.[^.]*를 사용해야했습니다.
Ari

zsh와 Forsyth 쉘 (현재는 대부분 pdksh와 그 파생물 임)에서 파생 된 모든 쉘은 옳은 일을하고 확장하지 않습니다. 그리고 여기. 다른 모든 Bourne과 같은 쉘 (bash, Bourne, AT & T ksh, dash, yash ...). 에서가 zsh, 당신이 사용하는 거라고 du -sch -- *(D), 아니지만 du -sch -- * .*.
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.