2014-02-26 5 views
0

요즘에는 기본적인 터미널 명령을 사용하고있었습니다.해당 하위 디렉토리를 변경하지 않고 하위 디렉토리를 하위 디렉토리로 만들 수 있습니까?

mkdir dir_a dir_b 

을하지만 어머니 디렉토리에서 병렬 디렉토리를 만들려고 할 때, 이것이 실패 :

은 내가 병렬 디렉토리를 확인하여 그 사이에 공백을 추가 할 수 있음을 발견했다.

mkdir dir_a/dir_a_1 dir_a_2 
# Failed, the dir_a_2 is on top level 

내가 (CD 방법없이) 그 어머니 디렉토리로 변경하지 않고 어머니 디렉토리에서 병렬 하위 디렉토리를 만들 수있는 방법이 있나요?

+0

내 우분투 시스템에서 정상적으로 작동합니다! 너의 문제는 뭐니? 원하는 디렉토리 구조를 명확하게 설명해 주시겠습니까? – Nullpointer

+0

두 번째 dir_a_2는 dir_a가 아닙니다. – Mario

+0

분명히'mirdir dir_a/dir_a_1 dir_a/dir_a_2'를 써야한다는 점에서'dir_a' 아래에 있지 않습니다. 'mkdir test'를 사용하면 쉘이 그것을'mkdir./test'로 해석하므로 디렉토리는 현재 디렉토리에만 생성됩니다! – Nullpointer

답변

0

mkdir에 대한 각 인수는 현재 디렉토리를 루팅합니다. 귀하가보고있는 행동은 고의적입니다. mkdir에 대한 첫 번째 인수에 대한 특별한 대우는 없습니다.

그러나 찾고있는 결과를 얻는 데 사용할 수있는 몇 가지 옵션이 있습니다.

당신은 루프를 사용할 수

는 :

mkdir -p $(printf 'dir_a/%s ' dir_a_1 dir_a_2) 

당신은 printf와 xargs를 사용할 수 :

mkdir dir_a; pushd dir_a; mkdir dir_a_1 dir_a_2; popd 

당신은 printf 및 명령 대체를 사용할 수 있습니다

for f in dir_a_1 dir_a_2; do mkdir -p "dir_a/$f"; done 

당신은 pushd이 사용할 수 :

printf 'dir_a/%s ' dir_a_1 dir_a_2 | xargs mkdir -p 

이 중 아무 것이나 작동합니다.

관련 문제