du -ch -- **/*.jpg | grep total
특히 --
(이중 대시)와 **
(이중 별표)는 실제로 무엇을 의미하나요?
Z 쉘 사용
답변1
in은 in과 유사하지만 **
경로 이름 전체에서 일치를 허용합니다. 따라서 패턴은 현재 디렉터리나 그 아래 어느 곳에서나 파일 이름 접미사가 있는 모든 파일의 경로 이름으로 확장됩니다.zsh
*
/
**/*.jpg
.jpg
활성화된 경우 이 모드는 **
에서도 사용할 수 있습니다. 활성화된 경우 셸에도 이 모드가 있습니다.bash
shopt -s globstar
ksh93
set -o globstar
--
대시(위 패턴과 일치)로 시작하는 경로 이름이 du
명령줄 옵션 으로 해석되는 것을 방지합니다 . 추가 옵션을 찾기 위해 --
명령줄 구문 분석을 중지합니다 . du
이는 쉘에 종속되지 않지만 POSIX입니다."실용 가이드"표준 유틸리티용.
파일 이름 --
와일드카드 패턴이 ./**/*.jpg
.
*.jpg
이 명령은 출력에서 총계를 포함하는 줄을 추출하여 현재 디렉터리 안이나 아래에 있는 모든 파일의 총 크기를 제공합니다 ( 생성된 내용을 보지 du
않고 명령을 실행 ).| grep total
du
답변2
du 사용법에 대한 매뉴얼 페이지에서
du [OPTION][PARAM]
du - lists disk space used by files
c - displays total
h - human readable format (24M= meaning 24 MB)
--
- 일반적으로 옵션 매개변수의 끝을 나타냅니다. - glob은 이 경로
**/*.jpg
(foo/bar.jpg)와 일치하는 모든 경로를 찾습니다.
|
grep total- this option is not required and is redundant, since -c[OPTION] is giving you grand total anyways.
핵심요약: 현재 디렉터리보다 한 수준 아래 디렉터리에 있는 .jpg 형식 그림의 총 디스크 크기를 나열하세요.
예를 들어 현재 디렉터리가 ~/Pictures
실행 중인 경우 이 명령을 실행하면 내부에 있는 모든 .jpg 파일의 파일 크기가 반복적으로 나열됩니다. (~/Pictures/EuropeTrip/pic134.jpg) [*]는 정규 표현식의 경우 모두를 의미합니다.
(grep Total)이 출력에 무엇을 수행/추가하는지 잘 모르겠습니다. 여기서는 아마도 필요하지 않을 것입니다.