2017-04-26 20 views
1

Suppse을 내가 하나의 명령을 사용하여 모든 디렉토리 아래에 같은 이름의 디렉토리를 만들 수있는 방법 디렉토리 단일 명령을 사용하여 모든 디렉토리 아래에 새 디렉토리를 만들 : 리눅스

dir_1/ dir_2/ dir_3/ 

이 있다면? 당신은 서브 디렉토리의 공유 같은 새 이름을 원하는 경우

for i in ./dir_*; do mkdir -p "${i}/${i}"; done 

:

당신은 하위 디렉토리를 원하는 경우

부모 디렉토리와 같은 이름을 가지고

+0

오른쪽. 물고기는 그 방향에 있습니다. 이제 물고기 잡는 법을 배우겠습니다. –

답변

5

여기 당신을 위해 하나 개의 명령입니다.

for i in ./dir_*; do mkdir -p "${i}/new_dir_name"; done 
+0

글 덩어리와 단어 분리를 막으려면' "$ i/$ i"'를 따옴표로 묶어야합니다. –

+0

@ l' L' l 당신이 맞습니다, 업데이트되었습니다, 고마워요! – luoluo

0

당신은 당신이 사전에 DIRS의 이름을 알고있는 경우에만 물론, 작업 중괄호 확장

mkdir dir_{1..3}/newDir 

를 사용해야합니다. 'sh'와 함께 작동하지 않습니다.

0

find를 사용할 수 있습니다

find . -maxdepth 1 -type d -name 'dir_*' -exec mkdir {}/{} \; 

테스트 :

$ ls 
dir_1 dir_2 dir_3 file1 file2 file3 

$ find . -maxdepth 1 -type d -name 'dir_*' -exec mkdir {}/{} \; 

$ ls dir_1/ 
dir_1 
0

당신이 할 수있는 find 사용 :

그렇지 않은 경우는 directory/directory을 생성합니다
find . -type d -maxdepth 1 -execdir mkdir -p "{}/{}" \; 

이미 exi 성.