이번에는 말그대로
어떤 파일을 가지고 그 이름의 폴더를 만들고,
거기다가 파일을 복사하고
만든 폴더를 해당 이름으로 압축하는 스크립트입니다.
해괴하지만 어디다가 썼냐고 하면
언리얼엔진 iOS framework 적용 할 때 압축시켜서 넣어둬야되는 정체불명의 구조때문에....
#!/bin/bash
cd "`dirname "$0"`" # Move Directory
for frameworkFiles in *.framework
do
compressname=${frameworkFiles%.framework}
echo $compressname import?
mkdir $compressname # make directory
cp -a -f $frameworkFiles $compressname/$frameworkFiles # copy framework
zip --symlinks -r $compressname.zip ./$compressname/* # compress framework all sub directory with symbolic link
rm -r $compressname # delete directory
done
echo end
exit 0
스크립트는 위와 같습니다.
파일/폴더 지울때랑 마찬가지로
#!/bin/bash 로 시작하고
터미널에서 .sh 로 실행시키는게 아니라 .command 로 바꿔서 하는 경우 경로인식이 제대로 되지 않아서
cd "`dirname "$0"`" # Move Directory 를 추가했습니다
그러면 .command 를 실행하는 폴더를 기준으로 잡습니다.
이번에는 따로 배열 변수를 두지 않고
루프문을 만들었는데
for frameworkFiles in *.framework
.framework 확장자의 파일들을 모두 가져다 쓰겠다는 말입니다.
저한테는 조금 신기하긴 하지만 어쨋든 저렇게 써놓으면 .framework 파일들을 가져다 쓸 수 있게 됩니다.
압축파일 이름을 위한 변수를 하나 두는데 반복문의 변수 framework 를 이용합니다
그런데 framework에 저장된 값을 그냥 쓰게 되면 ~~~~~.framework 라고 되어버리는데 그대로 압축시킬때 써버린다면
~~~~.framework.zip 이라는 파일을 만들게 됩니다. 마음에 들지 않으니 문자열에서 [ .framework ] 를 제외시키기 위해..
compressname=${frameworkFiles%.framework}
${}대괄호로 묶은 변수에 % 다음 빼고 싶은 문자열을 써놓았습니다.
%는 뒷 부분에서부터 가장짧게 일치하는 문자 제거.. 라는 옵션인듯 합니다.
그 외에는 폴더 만들고
그 위치에 파일 복사시키고
그 다음은 압축인데..
zip --symlinks -r $compressname.zip ./$compressname/*
-r 을 이용해서 하위폴더까지 포함시키고
--symlinks 로 symbolic link를 살려서 압축시킨다는 얘기입니다.
--symlinks 빼보니 symbolic link없는 압축은 같겠지만 finder 로 압축할때와 크기도 압축내용물도 다릅니다.
'컴퓨터공학 > 운영체제' 카테고리의 다른 글
bash 스크립트 백업용 1 여러 폴더 지우기 (0) | 2016.04.25 |
---|---|
2011 윈도우 7 프로페셔널 대학생 프로모션 또해요 (0) | 2011.08.16 |
What is Google Chrome OS? 크롬 `OS`는 무엇인가? (0) | 2011.06.09 |
VBOX에서 우분투 11.04 쓰는데 한글팩 설치가 제대로 안되더군요 (0) | 2011.05.27 |