
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/{db
dirs}
{db
/root/backups
dirs}
공백을 제거하면 원하는 동작을 얻을 수 있습니다.