linux/unix 명령에서 -- 및 **의 의미를 설명할 수 있는 사람이 있습니까? [복사]

linux/unix 명령에서 -- 및 **의 의미를 설명할 수 있는 사람이 있습니까? [복사]
du -ch -- **/*.jpg | grep total

특히 --(이중 대시)와 **(이중 별표)는 실제로 무엇을 의미하나요?

Z 쉘 사용

답변1

in은 in과 유사하지만 **경로 이름 전체에서 일치를 허용합니다. 따라서 패턴은 현재 디렉터리나 그 아래 어느 곳에서나 파일 이름 접미사가 있는 모든 파일의 경로 이름으로 확장됩니다.zsh*/**/*.jpg.jpg

활성화된 경우 이 모드는 **에서도 사용할 수 있습니다. 활성화된 경우 셸에도 이 모드가 있습니다.bashshopt -s globstarksh93set -o globstar

--대시(위 패턴과 일치)로 시작하는 경로 이름이 du명령줄 옵션 으로 해석되는 것을 방지합니다 . 추가 옵션을 찾기 위해 --명령줄 구문 분석을 중지합니다 . du이는 쉘에 종속되지 않지만 POSIX입니다."실용 가이드"표준 유틸리티용.

파일 이름 --와일드카드 패턴이 ./**/*.jpg.

*.jpg이 명령은 출력에서 ​​총계를 포함하는 줄을 추출하여 현재 디렉터리 안이나 아래에 있는 모든 파일의 총 크기를 제공합니다 ( 생성된 내용을 보지 du않고 명령을 실행 ).| grep totaldu

답변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)이 출력에 무엇을 수행/추가하는지 잘 모르겠습니다. 여기서는 아마도 필요하지 않을 것입니다.

관련 정보