일치하는 하위 디렉터리를 포함하지 않는 모든 디렉터리를 찾아 생성합니다.

일치하는 하위 디렉터리를 포함하지 않는 모든 디렉터리를 찾아 생성합니다.

다음과 같은 디렉토리 구조가 있습니다.

/media/storage/sqlbackup/CUSTOMER1
/media/storage/sqlbackup/CUSTOMER2
...
/media/storage/sqlbackup/CUSTOMER*

CUSTOMER*디렉토리가능한daily, weekly및 라는 하위 디렉토리가 포함되어 있습니다 monthly. CUSTOMER*디렉토리에 dailyOR 이 없으면 생성하고 weekly, monthly있으면 유지하고 싶습니다.

앞으로: CUSTOMER1/daily

뒤쪽에: CUSTOMER1/{daily,weekly,monthly}

저는 find를 영리하게 사용하여 이 작업을 수행하려고 하지만 일치하지 않는 모든 항목을 반환하려고 합니다.

답변1

이미 존재하는 디렉터리와 관련된 오류를 숨기면서 디렉터리를 생성할 수 있습니다.

for custDir in /media/storage/sqlbackup/CUSTOMER*
do
    mkdir -p "$custDir"/{daily,weekly,monthly}
done

/media/storage/sqlbackup/CUSTOMER*/{daily,weekly,monthly}와일드카드 이전 에 {...}시퀀스가 ​​확장되고 와일드카드 패턴은 존재하는 파일/디렉터리에만 일치하므로 이를 사용할 수 없습니다 .

관련 정보