adsense_in_article_test


[bash: date] 임시 파일 만들기 리눅스 bash script

shell script에서 임시로 파일을 만들어서 사용해야 할 경우, 파일명이 다른 파일과 겹치지 않게 하기 위해 date를 활용할 수 있다. 현재 시각을 임시 파일의 이름에 넣으면 된다.

현재 시각을 "연월일_시분초" 형식으로, 예를 들어 2012년 11월 29일 17시 45분 23초를 20121129_174523 이런 식으로 얻어서 파일명에 사용하자.

date "+%Y%m%d_%H%M%S"

아래의 예는 현재 시각을 time_stamp라는 변수에 할당하여 임시 파일명을 my_tmp_file.$time_stamp.tmp로 정하고 여기에 "this is my temp file" 문자열을 저장한 경우이다.

time_stamp=`date "+%Y%m%d_%H%M%S"`
tmp_file_name="my_tmp_file.$time_stamp.tmp"
echo "this is my temp file" > "$tmp_file_name"


시각이 2012년 11월 29일 17시 45분 23초라면 임시 파일은 my_tmp_file.20121129_174523.tmp가 될 것이다.

만약 이런 script를 거의 동시에 여러 개를 실행해야 하는 경우라면, 임시 파일 이름이 겹치지 않기 위해 초 단위보다 더 세밀하게 시각을 얻어야겠다. 이럴 때는 나노초(nanosecond)를 포함시키면 된다. time_stamp 변수의 값이 10억분의 1초 단위로 정해지니까 겹칠 일이 없을 것이다. 아래와 같이 하면 된다.

time_stamp=`date "+ %Y%m%d_%H%M%S_%N"`



덧글

  • cinsk 2012/12/04 16:17 # 삭제 답글

    tmpfile=${TMPDIR:-/tmp}/tmpfile.$$
  • 반달가면 2012/12/04 22:04 #

    네. PID를 사용하면 훨씬 간단합니다만, 개인적으로 실행 시점을 확인할 필요가 있어서 편하게 하고자 시각을 파일명에 넣어서 쓰고 있습니다.
  • fina 2015/11/30 22:51 # 삭제 답글

    안녕하세요 저는 리눅스 공부중인 학생입니다
    반달가면님의 글을 보고 궁금증이 생겨 글 남깁니다.
    임시로 파일을 만들어서 사용할 경우가 예를들어 어떨때일까요??
  • 반달가면 2015/12/01 22:05 #

    쓰기 나름이겠습니다만, 저는 보통 작업 중간결과를 파일로 저장해 둘 필요가 있을 경우에 사용합니다.
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.



통계 위젯 (화이트)

14207
3300
2298692

2019 대표이글루_IT

B-Side