반응형

배경

자주 사용하는데 문제는 유닉스 환경을 잠시 안쓰면 잊어서 기록을 함. 더 자세한 내용은 "man tar"에서 볼 수 있지만, 귀찮으니 자주 쓰는 건 외우도록 하자.

일일히 이해하고 사용하기 귀찮다면 관례적으로 압축은 -cvzf, 해제는 -xvzf 로 외워도 쓰는데는 지장없다.

개요

압축 파일의 본질은 말그대로 알고리즘으로 파일의 크기를 줄이는 데에 있다. 하지만, 그외에 더 좋은 용도로 사용된 것이 바로 여러 파일들을 하나로 합치는 것들이다. tar는 기본적으로 여러 파일을 하나라 합치나 압축을 하는 기능이 없다. 때문에 tar 뒤에 gz 같은 추가 확장자로 추가로 압축 작업을 했는지 구분하기도 한다.

옵션

x 묶음 해제
c 파일 묶음
v 묶음/해제 과정을 화면에 표시
z gunzip 을 사용
f 파일 이름을 지정
p 권한(permission)이 원본과 동일하게 유지

 

압축

와일드 카드"*" 사용가능함. 

예시)

tar -cvzf {생성할 파일명}.tar.gz {압축할 파일 및 폴더}

압축 해제

예시)

tar -xvzf {압축된 파일명}.tar.gz

참고자료

http://sarghis.com/blog/468/

반응형

'리눅스 > 리눅스 공통' 카테고리의 다른 글

리눅스 공통 : ssh로 원격 명령어 실행  (1) 2017.09.03
반응형

리눅스/윈도우 C : 현재날짜와 시간 가져오기

알게된 배경

 서버애서 생성하는 파일명에 날짜와 시간요소를 넣어서 생성하기 위해서 시스템의 시간을 알아야 할 필요가 있었다.


리눅스 계열(유닉스)과 윈도우

 윈도우 엄밀하게 말하면, MVC(VS 20xx)에서 사용하는 컴파일러는 C++에 대해서는 지원을 잘하지만, C에대해서는 지원이 잘 안되고 있다. 따라서 본의 아니게 소스코드를 실행할 때 차이점이 발생한다. 물론 이를 해결하기 위해서는 새로 소스코드를 작성하거나 minGW, Cygwin 처럼 리눅스 함수를 윈도우에 맞게 포팅해주는 컴파일러를 사용하면된다(하지만 socket 계열은 지원이 안되는 걸로 기억한다).

 시간에 대해서 더 자세히 알기 위해서는 struct tm에 대해서 검색을 해보도록 하자.



리눅스 소스코드

 C++에서는 헤더파일을 ctime으로 호출이 가능하며, 동일하게 사용이 가능하다.

// clock.c
#include <stdio.h>
#include <time.h>

void printTime(void)
{
    time_t timer;
    struct tm* t;

    timer = time(NULL);
    t = localtime(&timer);

    printf("UNIX Time : %d [sec]\n\n", timer);
    printf("year : %d\n", t->tm_year + 1900);
    printf("month : %d\n", t->tm_mon + 1);
    printf("days : %d\n", t->tm_mday);
    printf("hour : %d\n", t->tm_hour);
    printf("min : %d\n", t->tm_min);
    printf("sec : %d\n", t->tm_sec);
}


윈도우 소스코드

 리눅스 소스코드와 차이점은 struct tm 포인터 객체 대신 객체 자체를 선언하면 되며, localtime_s()를 사용한다.

// clock.c
#include <stdio.h>
#include <time.h>

void printTime(void)
{
    time_t timer;
    struct tm t;

    timer = time(NULL);
    localtime_s($t, &timer);

    printf("WINDOWS Time : %d [sec]\n\n", timer);
    printf("year : %d\n", t->tm_year + 1900);
    printf("month : %d\n", t->tm_mon + 1);
    printf("days : %d\n", t->tm_mday);
    printf("hour : %d\n", t->tm_hour);
    printf("min : %d\n", t->tm_min);
    printf("sec : %d\n", t->tm_sec);
}


참고자료

블로그: 유닉스 현재시간 아는 방법 소개


반응형

'C' 카테고리의 다른 글

리눅스 C : TCP 소켓 프로그램  (0) 2017.05.24
Linux C : 파일이나 폴더 조회하기  (0) 2017.04.24
C : 구조체를 네임스페이스처럼 사용하기  (0) 2017.04.22
C : 문자열 숫자 변환  (0) 2017.04.21
C : extern 키워드  (0) 2016.11.28

+ Recent posts