#!/bin/sh dir="경로 지정" cd "$dir" # 현재 디렉토리를 기준으로 하위 모든 파일명,폴더명의 '..'를 없앤다. find ./ ( ! -path "*.Apple*/*" -name "*..*" ) | sed -e 'p' -e "s/..//g" | xargs -n 2 mv # 현재 디렉토리를 기준으로 하위 모든 파일명,폴더명의 ':2f'를 '-'로 바꾼다. find ./ ( ! -path "*.Apple*/*" -name "*:2f*" ) | sed -e 'p' -e "s/:2f/-/g" | xargs -n 2 mv
[ Line 6 ]
find ./ ( ! -path "*.Apple*/*" ! -path "*.uni*" -name "*..*" ) | sed -e 'p' -e "s/..//g" | xargs -n 2 mv
[ 설명 ]
find ./ ( ! -path "*.Apple*/*" ! -path "*.uni*" -name "*..*" )
1) 맥과 데이터를 공유하면서 생성된 .AppleDouble 디렉토리들을 제외하고
2) unison 사용으로 인해 생선된 .unison 으로 시작하는 파일과 디렉토리들을 제외하고
3) 파일명/디렉토리명에 점이 2개 있다면
sed -e 'p' -e "s/..//g"
1) 바뀐 부분만 출력
2) ‘..’ 를 검색해서 ‘(공백)’으로 치환
xargs -n 2 mv
find 에서 나온 결과값 (변경 전 파일명/디렉토리명) – ①
sed 에서 나온 결과값 (변경 할 파일명/디렉토리명) – ②
2개(-n 2)를 mv 인자로 넣는다.
* 9번째 줄 내용은 6번째 줄과 거의 동일