![특정 문자열로 시작하고 특정 문자열로 끝나는 모든 zip 파일을 찾습니다.](https://linux55.com/image/115812/%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B3%A0%20%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C%20%EB%81%9D%EB%82%98%EB%8A%94%20%EB%AA%A8%EB%93%A0%20zip%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%B0%BE%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
zip
db-
다음으로 시작하고 끝나는 모든 파일에 대해 다음 명령을 실행 합니다 .sql
.
zip /var/www/html/db-$(date +\%F-\%T).zip /var/www/html/^db-*.sql
하지만 나는 다음을 얻습니다.
zip 경고: 이름 불일치: /var/www/html/^db-*.sql
zip 오류: 조치가 필요하지 않습니다! (/var/www/html/db.zip)
캐럿을 사용하여 로 시작하는 모든 항목과 일치시킨 db-
다음 *.sql
끝에 추가하여 로 끝나는 모든 항목과 일치하므로 .sql
실수를 이해하지 못합니다.
다른 변형을 시도했지만 ^
모두 비슷한 오류로 인해 실패했습니다.
답변1
Bash 매개변수는 정규식이 아니라 와일드카드입니다. 사용:
$ zip /var/www/html/db-$(date +\%F-\%T).zip /var/www/html/db-*.sql
bash
매뉴얼의 "Pattern Matching"에서 :
*
빈 문자열을 포함하여 모든 문자열과 일치합니다.globstar
셸 옵션이 활성화되어*
경로 이름 확장 컨텍스트에서 사용 되면*
단일 패턴으로 사용되는 두 개의 인접한 s는 모든 파일과 0개 이상의 디렉터리 및 하위 디렉터리와 일치합니다. 뒤에 a가 오면/
두 개의 인접한*
s는 디렉토리 및 하위 디렉토리에만 일치합니다.