[bash] Bash를 사용하여 존재하지 않는 하위 디렉토리를 재귀 적으로 만드는 방법은 무엇입니까?

일부 데이터베이스를 멋지고 깔끔한 디렉토리 구조로 덤프하는 빠른 백업 스크립트를 작성 중이며 디렉토리를 작성하기 전에 디렉토리가 존재하는지 테스트해야 함을 깨달았습니다. 내가 가지고있는 코드는 작동하지만 더 좋은 방법이있는 것 같습니다. 어떤 제안?

[ -d "$BACKUP_DIR" ] || mkdir "$BACKUP_DIR"
[ -d "$BACKUP_DIR/$client" ] || mkdir "$BACKUP_DIR/$client"
[ -d "$BACKUP_DIR/$client/$year" ] || mkdir "$BACKUP_DIR/$client/$year"
[ -d "$BACKUP_DIR/$client/$year/$month" ] || mkdir "$BACKUP_DIR/$client/$year/$month"
[ -d "$BACKUP_DIR/$client/$year/$month/$day" ] || mkdir "$BACKUP_DIR/$client/$year/$month/$day"



답변

다음 과 같이 문서화 된-p 매개 변수 를 사용할 수 있습니다 .

-p,-부모

존재하는 경우 오류 없음, 필요에 따라 상위 디렉토리 작성

그래서:

mkdir -p "$BACKUP_DIR/$client/$year/$month/$day"


답변

$ mkdir -p "$BACKUP_DIR/$client/$year/$month/$day"


답변

기존 답변이 목적을 확실히 해결하는 동안 중첩 된 디렉토리 구조를 두 개의 다른 하위 디렉토리로 복제하려는 경우이 작업을 수행 할 수 있습니다

mkdir -p {main,test}/{resources,scala/com/company}

호출 된 디렉토리 아래에 다음 디렉토리 구조를 만듭니다.

├── main
   ├── resources
   └── scala
       └── com
           └── company
└── test
    ├── resources
    └── scala
        └── com
            └── company

SBT 디렉토리 구조를 작성하기 위해이 링크 에서 예제를 가져 왔습니다.


답변

mkdir -p newDir/subdir{1..8}
ls newDir/
subdir1 subdir2 subdir3 subdir4 subdir5 subdir6 subdir7 subdir8


답변