답변:
버팀대 확장을 활용하십시오.
du -b maybehere*/{*,.[^.],.??*}
또는 대안 적으로
du -b maybehere*/{,.[^.],..?}*
이것의 논리는 분명하지 않을 수 있으므로 여기에 설명이 있습니다.
* 숨겨지지 않은 모든 파일과 일치.[^.]단일 점으로 시작하고 그 뒤에 점이 아닌 파일을 찾습니다. 첫 번째 형식의 파일 이름은 2 자입니다..??* 3 자 이상의 숨겨진 파일과 일치..?* 위와 같이 두 번째 문자는 점이어야합니다요점은 현재 및 상위 디렉토리 ( .및 ..)에 대한 하드 링크를 제외 하지만 각 일반 파일을 한 번만 계산하는 방식으로 모든 일반 파일을 포함시키는 것입니다!
예를 들어 가장 간단한 방법은
du -b maybehere*/{.,}*
즉, 목록에 점 .과 "아무것도 없음"(사이에 ,없고 닫힘 없음 })이 있으므로 모든 숨겨진 파일 (점에서 시작)과 숨겨지지 않은 모든 파일 ( "아무것"에서 시작)이 일치한다는 것을 의미합니다. 문제는 이것 또한 .and과 일치 할 것이고 .., 이것은 아마도 당신이 원하는 것이 아닐 것이므로, 우리는 어떻게 든 그것을 배제해야합니다.
버팀대 확장에 대한 최종 단어.
중괄호 확장 은 더 적은 문자를 사용하여 명령 줄에 더 많은 파일 / 문자열 / 무엇을 포함시킬 수있는 메커니즘입니다. 구문은 {word1,word2,...}, 즉 쉼표로 구분 된 문자열 목록으로 시작 {하고 끝납니다 }. bashmanual은 매우 기본적이고 동시에 가장 일반적인 사용 예를 제공합니다.
$ echo a{b,c,d}e
abe ace ade
{ }나는 전혀 모른다는 :( 당신이 나에게 그것에 대해 더 많은 정보를 얻을 수있는 방향을 제공 할 수 있습니다
man bash"Brace Expansion"장을보십시오.
.??*일치에 실패 .a, .b... .[^.]*일치하지 ..foo.
.foo모두 일치 .[^.]*하고 .??*. 당신은 원합니다 {.[!.],..?,}*.
이미 GNU 특정 구문 ( -b)을 사용하고 있기 때문에 :
du -abd1 maybehere*/
그렇게 du하면 maybehere*디렉토리 의 파일을 나열하고 도트 파일을 제외하지 않습니다. -d1디스크 사용량보고를 한 수준 아래로 제한합니다 (를 사용하여 비 디렉토리 포함 -a).
그렇지 않으면, 글로브가 숨겨진 파일 ( .및 제외 ..) 을 포함하기 위해 각 쉘에는 고유 한 구문이 있습니다.
zsh:
du -b maybehere*/*(D)ksh93:
(FIGNORE='@(.|..)'; du -b maybehere*/*)bash:
(shopt -s dotglob; du -b maybehere*/*)tcsh:
(set globdot; du -b maybehere*/*)yash:
(set -o dot-glob; du -b maybehere*/*)
그러나 포함되어 .있고 ..그 결과를 포함하는 시스템에서는 readdir() 사용이 거의 불가능합니다.
숨겨진 디렉토리를 나열하거나 숨겨진 디렉토리에서 작업하려면 Costas가 말한 것처럼 사용할 수 있습니다
du -b maybehere*/.*
이를 통해 숨겨진 파일 및 디렉토리에서 작업 할 수 있습니다. 숨겨진 디렉토리 만 원한다면 다음을 사용하여 지정할 수 있습니다
du -b maybehere*/.*/
maybehere*/.*와 숨겨진 파일을 사용하지 않고 maybehere*/*다른 파일을 숨기려고합니다.
du -b은 숨겨진 것과 숨겨지지 않은 것을 모두 선택합니다.
maybehere*/.*모두를 위해 위의 내용을 추가하십시오