mkdir로 생성된 폴더 이름에 날짜 추가

mkdir로 생성된 폴더 이름에 날짜 추가

실행될 때 일부 파일을 생성하는 스크립트가 있습니다. 스크립트를 수정하고 맨 위에 다음 두 줄을 추가했습니다.

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%/

관련 정보