![일치하는 하위 디렉터리를 포함하지 않는 모든 디렉터리를 찾아 생성합니다.](https://linux55.com/image/164446/%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%ED%8F%AC%ED%95%A8%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EB%AA%A8%EB%93%A0%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%EC%B0%BE%EC%95%84%20%EC%83%9D%EC%84%B1%ED%95%A9%EB%8B%88%EB%8B%A4..png)
다음과 같은 디렉토리 구조가 있습니다.
/media/storage/sqlbackup/CUSTOMER1
/media/storage/sqlbackup/CUSTOMER2
...
/media/storage/sqlbackup/CUSTOMER*
각 CUSTOMER*
디렉토리가능한daily
, weekly
및 라는 하위 디렉토리가 포함되어 있습니다 monthly
. CUSTOMER*
디렉토리에 daily
OR 이 없으면 생성하고 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}
와일드카드 이전 에 {...}
시퀀스가 확장되고 와일드카드 패턴은 존재하는 파일/디렉터리에만 일치하므로 이를 사용할 수 없습니다 .