2013-12-17 3 views
1

하나의 파일이 들어있는 여러 개의 디렉토리가 있습니다. 모든 디렉토리의 파일은 같은 이름입니다. 파일을 디렉토리 이름으로 바꿔서 같은 디렉토리에서 파일을 수집 할 수 있도록해야합니다.디렉토리 이름으로 디렉토리 이름을 바꿉니다.

/home/x/Desktop/s0.01-k5/x  
/home/x/Desktop/s0.01-k7/x 
/home/x/Desktop/s0.01-k10/x 

내가 필요한 것은 모든 x의 이름을 디렉토리 이름으로 바꾸는 것입니다.

+0

http://stackoverflow.com/questions/8886239/renaming-file-with-same-name-as-directory-name 도움이 될 것입니다, 단지 공백에 대한 부분을 무시 – chk

+0

참조 [더 나은방법은 여러 패턴을 기반으로 파일의 이름을 바꿉니다] (http://stackoverflow.com/questions/20629302/better-way-to-rename-files-based-on-multiple-patterns/25597051#25597051) –

답변

0

/home/x/Desktop으로 이동하십시오. There

for i in */x;do mv -vf "$i" "${i%/x}/${i%/x}";done 

이 명령은 원하는대로 처리합니다. 당신이 hapen 무슨 확인하려는 경우, 당신은이 "MV"를 "에코"제공하여이를 테스트 할 수 있습니다

for i in */x;do echo mv -vf "$i" "${i%/x}/${i%/x}";done 
0

CD/홈/X/데스크탑 시도/

for i in $(ls); do mv $i/* $i/$i; done 
+0

[ls를 구문 분석하지 마십시오 ] (http://mywiki.wooledge.org/ParsingLs). 또한 모든 매개 변수를 인용해야합니다. –

관련 문제