IT News

tar 명령어 : 여러개의 폴더에 있는 특정 이름으로 시작되는 모든 파일들을 하나의 파일로 압축하는 방법

skyLove1982 2018. 2. 19. 20:26
반응형

최근에 특정 날짜.. 즉 13일과 14일에 저장된 파일들을 가져와야 할 필요성이 생기게 되었는데요. 리눅스에서 어떻게 해야할지 참 애메하더라구요.

폴더가 여러개가 있는데 그 폴더들을 다 일일이 들어가서 복사해서 다른 폴더를 만들어서 거기에 다 붙여넣어야 하는건지.. 그럴려면 시간도 오래걸릴것 같구요. 그래서 오랜 검색을 통해 드디어 찾아내었습니다.


아래의 tar 명령어 예시는 여러개의 폴더에서 파일 이름이 특정 날자로 시작되는 모든 파일들을 하나의 압축파일로 만드는 tar 명령어 입니다. 만들어질 파일 이름은 2018_02_13-14.tar 입니다. 이렇게 정한 이유는 2018_02_13 에서 14일까지의 모든 파일을 압축하기 때문입니다. 물론 파일 이름은 다르게 하셔도 됩니다.

그리고 파일이름 뒤에 나오는 매개 변수가 중요한데요. **/2018_02_13*  이 매개변수는 현재의 경로에 폴더들이 있을텐데요. 그 폴더들을 다 검색해서 압축하기 위함입니다. 예를 들어 01 과 02 라는 폴더가 현재 경로에 있다고 할때.. 01 폴더와 02 폴더를 순차적으로 검색을 해서 해당 폴더에 파일이 있는지 체크하고 그 파일이 있다면 압축하기 위함입니다. 즉 위의 매개변수의 의미는 현재 경로를 기준으로 각 폴더에 2018_02_13 으로 시작하는 모든 파일을 의미합니다. 그리고 그 바로 뒤에 있는 매개변수인 **/2018_02_14* 이 의미하는 것은 현재의 경로에 있는 폴더 중에서 2018_02_14로 시작하는 모든 파일을 의미합니다. 따라서 이 두개의 매개변수를 통해서 13일과 14일의 이름으로 시작하는 모든 파일을 의미합니다.


참고로 **/2018_02_13* 을 2018_02_13* 으로 바꾼다면.. 현재 경로에 있는 파일중에 2018_02_13으로 시작되는 파일을 의미합니다. 그렇기 때문에 서브 폴더에 있는 파일은 포함될 수가 없습니다. 아무튼 알아두면 참 유용한 tar 옵션 인것 같습니다.


아래는 전체적인 명령어 입니다.


tar -czvf 2018_02_13-14.tar **/2018_02_13* **/2018_02_14*



반응형