실행될 때 일부 파일을 생성하는 스크립트가 있습니다. 스크립트를 수정하고 맨 위에 다음 두 줄을 추가했습니다.
mkdir ABC
cd ABC
이렇게 형성된 새 파일은 이 디렉토리에 있게 됩니다 ABC
. 내 질문은 3월 26일에 스크립트를 실행하는 경우 이 디렉터리 이름에 현재 날짜를 어떻게 추가할 수 있느냐는 것입니다 ABC
( ABC_mar_26
날짜 형식에 대한 특정 표준도 없습니다 ABC_03_26
).
답변1
얻으려면 ABC_03_26
:
mkdir "ABC_$(date +'%m_%d')"
월 이름을 원하는 경우:
mkdir "ABC_$(LC_ALL=C date +'%b_%d')"
%b
해당 로캘에 대한 약식 월 이름이 제공되지만 첫 글자는 대문자로 표시됩니다 .
그렇게 하면 다음을 zsh
수행할 수 있습니다.
mkdir "ABC_${(L):-$(LC_ALL=C date +'%b_%d')}"
또는 사용급속한 확장:
$ LC_ALL=C; print -rl -- ${(L)${(%):-%D{%b_%d}}}
mar_26
답변2
다음은 Windows/cygwin 사용자가 관심을 가질 수 있는 문제에 대한 구체적인 예제 응용 프로그램입니다. 저는 .bat
현재 날짜와 시간의 이름을 딴 하위 폴더를 생성하여 파일을 자동으로 백업하는 배치 스크립트를 만든 적이 있습니다. 먼저 환경에서 변수를 가져온 %time%
다음 형식을 지정하여 마지막으로 0
문자열을 새 변수에 연결하고 %datetimef%
다음으로 전달합니다 mkdir
.
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
set year=%date:~-4%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
set datetimef=%year%%month%%day%-%hour%%min%%secs%
mkdir version%datetimef%
cp *.pdf version%datetimef%/