zip - -r 플래그를 사용할 때 "."와 "*.[^.]*" 패턴의 차이점

zip - -r 플래그를 사용할 때 "."와 "*.[^.]*" 패턴의 차이점

zip디렉터리 내용(숨겨진 파일 및 디렉터리 포함)을 반복적으로 압축하기 위해 플래그와 함께 명령을 사용할 때 -r다음의 차이점은 무엇입니까?

zip ../foo.zip -r .

그리고:

zip ../foo.zip -r * .[^.]*

아니면 정확히 같은가요?

첫 번째 명령은 .현재 디렉터리( )를 대상으로 해야 하며 -r인수에는 모든 숨겨진 파일과 디렉터리가 포함되어야 합니다.

두 번째 명령은 내가 올바르게 기억한다면 현재 디렉터리(첫 번째 디렉터리 *)에서 점이 아닌 모든 파일과 일치한 다음 .char로 시작하고 그 뒤에 [^.]점( )을 제외한 모든 문자가 오는 모든 파일과 일치하므로 ..상위 디렉터리는 제외됩니다.

온라인 예제에서 두 번째 명령을 찾았지만 정확히 동일한 작업을 수행한다면 더 간단한 첫 번째 명령 대신 이 명령을 사용할 의미가 없습니다.

또한 POSIX 쉘 스크립트에서 ShellCheck는 대체되어야 하는 기호에 대해 불평합니다 . 이는 * .[^.]*간단한 함수가 동일한 작업을 수행할 수 있다면 이를 사용하지 않는 또 다른 좋은 이유입니다../* .[!.]*.

zip ../foo.zip * .[^.]*내 생각엔 (플래그 없이 ) 발견한 예제에서 -r명령이 실행되었고 -r플래그는 -r현재 경로( .)가 대신 대상이 되었다고 생각하지 않고 추가된 것입니다 * .[^.]*.

그래서 내 질문은: 이 플래그를 사용할 때 이 두 명령이 동일합니까 -r? 내 추측이 맞나요?

관련 정보