반응형
Bash를 사용하여 존재하지 않는 서브디렉토리를 재귀적으로 작성하려면 어떻게 해야 합니다.
데이터베이스를 nice/neat 디렉토리 구조로 덤프하는 퀵백업 스크립트를 작성하고 있는데, 작성하기 전에 디렉토리가 존재하는지 테스트해야 한다는 것을 깨달았습니다.제가 가지고 있는 코드가 작동하는데, 더 나은 방법이 있을까요?
[ -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
언급URL : https://stackoverflow.com/questions/1731767/how-can-i-create-nonexistent-subdirectories-recursively-using-bash
반응형
'programing' 카테고리의 다른 글
| div의 요소를 수직으로 정렬하려면 어떻게 해야 합니까? (0) | 2023.04.09 |
|---|---|
| 심판에게 전달된 목록 - 이 동작을 설명하는 데 도움이 됩니다. (0) | 2023.04.09 |
| 빌드 시 명령 복사본이 코드 4와 함께 종료됨 - Visual Studio 재시작으로 해결 (0) | 2023.04.09 |
| 목록에서 목록으로 캐스팅하기 위한 더 짧은 구문? (0) | 2023.04.09 |
| Bash 스크립트에서 특정 상황이 발생했을 때 스크립트 전체를 종료하려면 어떻게 해야 합니까? (0) | 2023.04.09 |