특정 문자열로 시작하고 특정 문자열로 끝나는 모든 zip 파일을 찾습니다.

특정 문자열로 시작하고 특정 문자열로 끝나는 모든 zip 파일을 찾습니다.

zipdb-다음으로 시작하고 끝나는 모든 파일에 대해 다음 명령을 실행 합니다 .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는 디렉토리 및 하위 디렉토리에만 일치합니다.

관련 정보