현재 날짜와 시간이 될 이름을 가진 파일을 만들고 싶습니다. touch명령 으로 파일을 만들 수 있습니다 . 또한 date명령으로 현재 시간을 얻을 수 있습니다 . 그래서 두 번째 명령을 첫 번째 명령으로 파이프해야한다고 생각합니다. 어떻게해야합니까?
현재 날짜와 시간이 될 이름을 가진 파일을 만들고 싶습니다. touch명령 으로 파일을 만들 수 있습니다 . 또한 date명령으로 현재 시간을 얻을 수 있습니다 . 그래서 두 번째 명령을 첫 번째 명령으로 파이프해야한다고 생각합니다. 어떻게해야합니까?
답변:
쉘 표현식의 리턴 값을 touch다음에 대한 인수로 사용하십시오 .
touch $( date '+%Y-%m-%d_%H-%M-%S' )
결과 : 이름이 eg 인 파일 2012-03-11_14-33-53.
이 답변은 사용하고 있다고 가정하지만 bash( man페이지 섹션의 Command Substitution 참조 ) 다른 쉘은 동일하거나 약간 다르게 작동합니다.
"따옴표로 묶습니다. 당신의 출력 상상할 수있는 date명령 줄의 부품을 교체를하고, touch Sun Mar 11 14:48:31 CET 2012파일 이름을 만들 것 Sun, Mar등 touch "Sun Mar 11 14:48:31 CET 2012"다른 한편으로는 (필자는 콜론이 어떻게 작동하는지 잘 모르겠어요 제외) 잘 작동합니다.
echo "$HOME"하고 echo '$HOME'. 그래서 내가의 사용을 제안했습니다 ".
더 간단한 명령을 사용할 수 있습니다
touch $(date | tr ' ' '-')
date일반적으로 시간을 hh : mm : ss로 표시합니다. 대답은 콜론을 포함하는 파일 이름을 생성합니다. Windows 기반 파일 시스템에서 오류가 발생할 수 있습니다. (2) 간단한 호출의 원시 출력 date은 로케일에 따라 다릅니다. 즉, 현지 언어에 맞게 사용자 정의됩니다. 시도 LANG=de_DE date하고 LANG=fr_FR date예를 보십시오 . … (계속)
date날짜를 쓰는 로케일이있을 수 있습니다 mm / dd / yy (또는 dd / mm / yy). … (계속)
ls또는 *에 의해 생성 된 사전 순 (즉, 알파벳순) 이 시간 순서대로 일치 하는 결과를 제공합니다 . 당신의 대답과 함께, 모든 Fri파일은 사전 식 정렬 된 목록의 시작 부분에있을 것이고, Apr그리고 Aug다른 모든 개월 전에 나타납니다.