숨겨진 디렉터리를 포함한 모든 디렉터리의 크기를 보고 싶습니다. 내가 만난 명령 중 하나는 다음과 같습니다.
du -hs .[!.]*
하지만 오류가 발생합니다.
du: cannot access ‘.[!.]*’: No such file or directory
내가 뭘 잘못하고 있는지 알 수 없습니다.
답변1
나타나는 오류는 현재 디렉터리에 숨겨진 파일이나 디렉터리가 없음을 의미합니다. .[!.]*
이름이 "."로 시작하는 모든 파일 또는 디렉터리와 일치하도록 확장됩니다. "."을 제외한 모든 항목이 뒤따르며, 일치하는 항목이 없으면 기본적으로 그대로 유지됩니다. 따라서 귀하의 경우 du
run은 .[!.]*
실제 파일이나 디렉터리 이름을 인수로 사용하고 현재 보고 있는 오류 메시지를 생성합니다.
nullglob
여기에서 셸 동작 변경을 활성화 할 수 있습니다 .
shopt -s nullglob
그런 다음 셸은 일치하지 않는 패턴을 제거하고, du
일치하지 않는 경우 현재 디렉터리의 사용량을 보고합니다(인수 없는 기본 동작).
Bash에서 원하는 것을 달성하려면 다음을 수행해야 합니다.
du -sh .[!.]*/ */
이는 숨겨진 디렉터리를 포함하여 현재 디렉터리의 모든 디렉터리로 확장됩니다. 활성화하지 않으면 nullglob
오류 메시지가 계속 표시되지만 일치하는 디렉터리의 크기가 표시됩니다.
답변2
다음 명령을 원하는 것 같습니다.
du -hsc --exclude "./.*" */ | sort -h