mkdir -p 중괄호를 사용한 디렉토리 생성이 잘못되었습니다.

mkdir -p 중괄호를 사용한 디렉토리 생성이 잘못되었습니다.

Ubuntu 서버 16.04 xenial에서 다음 코드를 실행했습니다.

mkdir -p /root/backups/{db, dirs}

다른 시스템에서는 3개의 디렉토리를 모두 생성하는 것이 아주 매력적이었던 것으로 기억합니다.

/root/backups/
/root/backups/db
/root backup/dirs

그러나 이번에는 결과가 다음과 같습니다.

/root/backups/
/root/backups/{db,

이 결과가 부분적이고 깨진 이유는 무엇입니까?

답변1

Bash는 POSIX 쉘과 마찬가지로명령을 토큰으로 분할앞으로확장 단어(배쉬에서는버팀대 확장 포함).

mkdir -p /root/backups/{db, dirs}

공백이 포함되어 있으므로 명령은 먼저 토큰 mkdir, -p및 으로 분할 됩니다 /root/backups/{db,. dirs}이들 중 어느 것도 추가 확장이 필요하지 않으므로 mkdir세 개의 인수 및 로 실행 됩니다 -p. , 및 현재 디렉터리 에 생성 됩니다 ./root/backups/{dbdirs}{db/root/backupsdirs}

공백을 제거하면 원하는 동작을 얻을 수 있습니다.

관련 정보