Linux 터미널에서 날짜와 시간을 표시하는 방법(Bash 스크립트에서 사용)

date 명령은 대부분의 Linux 배포판과 macOS의 기본 셸인 Bash 셸에서 찾을 수 있습니다. 이 튜토리얼은 명령줄에서 날짜를 마스터하는 방법과 쉘 스크립트에서 날짜를 사용하여 단순히 시간을 인쇄하는 것 이상을 수행하는 방법을 보여줍니다.

이 정보를 보려면 date 명령을 실행하십시오. 시간대의 현재 날짜와 시간을 인쇄합니다.

date

기본 형식은 약간 구식입니다. 연도가 시간대 뒤에 태그가 지정되는 대신 월과 일 뒤에 인쇄되지 않는 이유는 무엇입니까? 두려워하지 마십시오. 원하는 출력 형식을 제어하는 ​​경우 날짜가 스페이드로 제공합니다. 원하는 대로 정확하게 출력 형식을 지정하도록 지시하기 위해 현재까지 전달할 수 있는 40개 이상의 옵션이 있습니다.

옵션을 사용하려면 날짜, 공백, 더하기 기호 + 및 선행 백분율 기호가 포함된 옵션을 입력합니다. %c(로케일 형식의 데이터 및 시간) 옵션을 사용하면 날짜와 시간이 해당 로케일과 관련된 정규화된 형식으로 인쇄됩니다. 로케일은 운영 체제를 설치할 때 제공한 지리적 및 문화적 정보로 설정됩니다. 로케일은 통화 기호, 용지 크기, 시간대 및 기타 문화적 규범과 같은 사항을 관리합니다.

date +%c

이제 연도가 출력에서 ​​보다 자연스러운 위치에 나타납니다.

한 번에 여러 옵션을 전달할 수 있습니다. 일련의 옵션을 형식 문자열이라고 합니다. 날짜(%A), 날짜(%d) 및 월 이름(%B)을 보려면 다음 명령을 사용하십시오.

date +%A%d%B

그것은 효과가 있었지만 추악합니다. 문제 없습니다. 전체 형식 문자열을 따옴표로 묶는 한 공백을 포함할 수 있습니다. +는 따옴표 밖에 나간다는 점에 유의하십시오.

date +"%A %d %B"

다음과 같이 형식 문자열에 텍스트를 추가할 수 있습니다.

date +"Today is: %A %d %B"

날짜를 위아래로 스크롤 매뉴얼 페이지 원하는 옵션을 찾는 것은 곧 지루해집니다. 더 쉽게 탐색할 수 있도록 옵션을 그룹으로 묶었습니다.

날짜 및 시간 표시 옵션

%c: 시간대를 포함하여 사용자의 로케일 형식으로 날짜와 시간을 인쇄합니다.

  볼트가 있는 KDE Linux 데스크탑에서 암호화된 폴더를 만드는 방법

날짜 표시 옵션

%D: 날짜를 mm/dd/yy 형식으로 인쇄합니다.
%F: yyyy-mm-dd 형식으로 날짜를 인쇄합니다.
%x: 사용자의 로케일 형식으로 날짜를 인쇄합니다.

요일 표시 옵션

%a: 월요일, 화요일, 수요일 등으로 축약된 요일 이름을 인쇄합니다.
%A: 월요일 화요일, 수요일 등 요일의 전체 이름을 인쇄합니다.
%u: 월요일=1, 화요일=2, 수요일=3 등의 요일을 인쇄합니다.
%w: 일요일=0, 월요일=1, 화요일=2 등의 요일을 인쇄합니다.
%d: 필요한 경우 앞에 0(01, 02 … 09)을 사용하여 날짜를 인쇄합니다.
%e: 필요한 경우 선행 공백(‘ 1’, ‘ 2’ … ‘ 9’)을 사용하여 날짜를 인쇄합니다. 아포스트로피는 인쇄되지 않습니다.
%j: 필요한 경우 최대 2개의 선행 0과 함께 날짜를 인쇄합니다.

주 표시 옵션

%U: 일요일을 주의 첫째 요일로 간주하여 연도의 주 번호를 인쇄합니다. 예를 들어, 해당 연도의 세 번째 주, 해당 연도의 20번째 주 등입니다.
%V: 월요일을 주의 첫째 요일로 간주하여 해당 연도의 ISO 주 번호를 인쇄합니다.
%W: 월요일을 주의 첫째 요일로 간주하는 연도의 주 번호.

월 표시 옵션

%b 또는 %h: Jan, Feb, Mar 등으로 축약된 월의 이름을 인쇄합니다.
%B: 1월, 2월, 3월 등 월의 전체 이름을 인쇄합니다.
%m: 01, 02, 03 … 12가 필요한 경우 앞에 0을 사용하여 월 수를 인쇄합니다.

연도 표시 옵션

%C: 연도 없이 세기를 인쇄합니다. 2019년에는 20을 인쇄합니다.
%y: 연도를 두 자리 숫자로 인쇄합니다. 2019년에는 19를 인쇄합니다.
%Y: 연도를 4자리로 인쇄합니다.

시간 표시 옵션

%T: 시간을 HH:MM:SS로 인쇄합니다.
%R: 24시간제를 사용하여 초 없이 시와 분을 HH:MM으로 인쇄합니다.
%r: 12시간제와 오전 또는 오후 표시기를 사용하여 로케일에 따라 시간을 인쇄합니다.
%X: 24시간제를 사용하여 로케일에 따라 시간을 인쇄합니다. 주장한 바에 의하면. 테스트하는 동안 이 옵션은 아래와 같이 %r과 동일하게 작동했습니다. UK 로케일용으로 구성되고 GMT로 설정된 Linux 시스템에서 예상대로 AM 또는 PM 표시기가 없는 24시간제를 사용하여 시간을 인쇄했습니다.

  Wavebox를 사용하여 Linux 데스크톱에서 Gmail을 실행하는 방법

시간 표시 옵션

%H: 00, 01, 02…23시를 인쇄합니다.
%I: 12시간제 00, 01, 02 … 12를 사용하여 시간을 인쇄하고 필요한 경우 앞에 0을 붙입니다.

분 표시 옵션

%M: 분, 01, 02, 03 … 59를 인쇄하고 필요한 경우 앞에 0을 붙입니다.

초 표시 옵션

%s: 1970-01-01 00:00:00 이후의 초 수를 인쇄합니다. 유닉스 시대.
%S: 필요한 경우 앞에 0과 함께 초 01, 02, 03 … 59를 인쇄합니다.
%N: 나노초를 인쇄합니다.

시간대 정보 표시 옵션

%z: 시간대와 UTC 간의 시차를 인쇄합니다.
%:z: 시간과 분 사이에 :를 사용하여 시간대와 UTC 간의 시차를 인쇄합니다. % 기호와 z 사이에 유의하십시오.
%::z: 시간, 분, 초 사이에 :를 사용하여 시간대와 UTC 간의 시차를 인쇄합니다. % 기호와 z 사이의 ::에 유의하십시오.
%Z: 알파벳 시간대 이름을 인쇄합니다.

서식 관련 옵션

%p: AM 또는 PM 표시기를 대문자로 인쇄합니다.
%P: 오전 또는 오후 표시기를 소문자로 인쇄합니다. 이 두 가지 옵션의 단점에 유의하십시오. 소문자 p는 대문자 출력을 제공하고 대문자 P는 소문자 출력을 제공합니다.
%t: 탭을 인쇄합니다.
%n: 새 줄을 인쇄합니다.

기타 옵션 수정 옵션

이러한 수정자는 %와 다른 옵션의 옵션 문자 사이에 삽입하여 표시를 수정할 수 있습니다. 예를 들어, %-S는 한 자리 초 값의 선행 0을 제거합니다.

–: 단일 하이픈은 단일 숫자 값에서 0 채우기를 방지합니다.
_: 단일 밑줄은 단일 숫자 값의 선행 공백을 추가합니다.
0: 한 자리 값에 대해 선행 0을 제공합니다.
^: 가능한 경우 대문자를 사용합니다(모든 옵션이 이 수정자를 따르는 것은 아님).
#: 가능하면 옵션의 기본 케이스와 반대를 사용합니다(모든 옵션이 이 수식어를 존중하는 것은 아닙니다).

두 가지 더 깔끔한 트릭

파일의 마지막 수정 시간을 얻으려면 -r(참조) 옵션을 사용합니다. 이것은 % 기호 대신 -(하이픈)을 사용하며 + 기호가 필요하지 않습니다. 홈 폴더에서 다음 명령을 시도하십시오.

date -r .bashrc

TZ 설정을 사용하면 단일 명령 기간 동안 시간대를 변경할 수 있습니다.

TZ=GMT date +%c

스크립트에서 날짜 사용

Bash 쉘 스크립트가 시간과 날짜를 출력하도록 하는 것은 간단합니다. 다음 내용으로 텍스트 파일을 생성하여 gd.sh로 저장합니다.

#!/bin/bash

TODAY=$(date +"Today is %A, %d of %B")
TIMENOW=$(date +"The local time is %r")
TIME_UK=$(TZ=BST date +"The time in the UK is %r")

echo $TODAY
echo $TIMENOW
echo $TIME_UK

다음 명령을 입력하여 실행 권한을 설정하고 스크립트를 실행 가능하게 만드십시오.

chmod +x gd.sh

다음 명령으로 스크립트를 실행합니다.

./gd.sh

date 명령을 사용하여 타임스탬프를 제공할 수 있습니다. 표시된 스크립트는 타임스탬프를 이름으로 사용하여 디렉토리를 생성합니다. 그런 다음 현재 폴더의 모든 텍스트 파일을 복사합니다. 이 스크립트를 주기적으로 실행하여 텍스트 파일의 스냅샷을 찍을 수 있습니다. 시간이 지나면서 다양한 버전의 텍스트 파일이 포함된 일련의 폴더를 만들 것입니다.

  Windows 10의 Bash에서 Linux 앱을 실행하는 방법 [Guide]

이것은 강력한 백업 시스템이 아니며 단지 설명을 위한 것입니다.

다음 내용으로 텍스트 파일을 생성하고 snapshot.sh로 저장합니다.

#!/bin/bash

# obtain the date and time
date_stamp=$(date +"%F-%H-%M-%S")

# make a directory with that name
mkdir "$date_stamp"

# copy the files from the current folder into it
cp *.txt "$date_stamp"

# all done, report back and exit
echo "Text files copied to directory: "$date_stamp

다음 명령을 입력하여 실행 권한을 설정하고 스크립트를 실행 가능하게 만드십시오.

chmod +x snapshot.sh

다음 명령으로 스크립트를 실행합니다.

./snapshot.sh

디렉토리가 생성되었음을 알 수 있습니다. 그 이름은 스크립트가 실행된 날짜와 시간입니다. 그 디렉토리 안에는 텍스트 파일의 복사본이 있습니다.

약간의 생각과 창의성이 주어지면 겸손한 데이트 명령도 생산적으로 사용할 수 있습니다.