unix에서 작업할 때, 파일을 압축하는 경우 친숙한 zip을 쓴다. 

물론, tar도 있지만... 옵션이 너무어려워서...

파일 구조 파악

$ls -R

이렇게 나올 것이다.

.:
123  123.txt  dir1  dir2  dir3

./dir1:
test1.txt  test2.txt

./dir2:
test1.txt  test2.txt

./dir3:
file1.py  file2.py  file3.py

 

압축

이 때 zip 명령어와 함께 -x 를 사용해서 포함시키지 않을 파일들을 추가시킬 수 있는데,

아래처럼 추가할 수 있다.

$ zip -r zip_file_name.zip target_dir \
      -x target_dir/ignore_dir \*.git/\*

-x 명령어가 제외할 파일 이름들을 등록할수 있다. 

상대 path 전체를 써서 특정 dir을 삭제할수도 있고

\*.git/\*와 같이 *를 써서 path에 해당 문자열이 포함되어 있으면 압축 시 무시하도록 할 수 있다. 

$ zip -r test.zip . -x \*dir1/\* \*dir2\*
updating: 123 (stored 0%)
updating: 123.txt (stored 0%)
updating: dir3/ (stored 0%)
updating: dir3/file2.py (stored 0%)
updating: dir3/file3.py (stored 0%)
updating: dir3/file1.py (stored 0%)

$ ls
123  123.txt  dir1  dir2  dir3  test.zip

 

+ Recent posts