파일의 수정 된 시간을 표시하는 방법?


35

bash 스크립트 내에서 사용하기 위해 파일의 수정 된 시간을 찾아 인쇄하는 방법을 원합니다.

나는 생각해 냈습니다 :

ls -l $filename | cut -d ' ' -f '6-8'

어떤 출력 :

Jul 26 15:05

파싱을 피하고 ls싶지만 거기에 연도를 두는 것이 유용합니다.

이상적으로는 date명령 의 기본 출력과 비슷한 출력을보고 싶습니다 .

Tue Jul 26 15:20:59 BST 2016

다른 유용한 방법이 있습니까?

답변:


46

를 사용하지 마십시오 ls.이 작업은 stat다음과 같습니다.

stat -c '%y' filename

-c특정 출력을 얻을 수 있습니다. 여기 %y에서 사람이 읽을 수있는 형식으로 파일의 마지막 수정 시간을 가져옵니다. 신기원 사용 이후의 초 시간을 얻으려면 %Y:

stat -c '%Y' filename

파일 이름도 원하면 다음을 사용하십시오 %n.

stat -c '%y : %n' filename
stat -c '%Y : %n' filename

필요에 따라 형식 지정자를 설정하십시오. 확인하십시오 man stat.

예:

% stat -c '%y' foobar.txt
2016-07-26 12:15:16.897284828 +0600

% stat -c '%Y' foobar.txt
1469513716

% stat -c '%y : %n' foobar.txt
2016-07-26 12:15:16.897284828 +0600 : foobar.txt    

% stat -c '%Y : %n' foobar.txt
1469513716 : foobar.txt

다음과 같은 출력을 원하면 Tue Jul 26 15:20:59 BST 2016Epoch 시간을 입력으로 사용하십시오 date.

% date -d "@$(stat -c '%Y' a.out)" '+%a %b %d %T %Z %Y'
Tue Jul 26 12:15:21 BDT 2016

% date -d "@$(stat -c '%Y' a.out)" '+%c'               
Tue 26 Jul 2016 12:15:21 PM BDT

% date -d "@$(stat -c '%Y' a.out)"
Tue Jul 26 12:15:21 BDT 2016

date필요에 따라의 형식 지정자를 확인하십시오 . 참조하십시오 man date.


5
이 답변 외에도 ls시스템 전체에 일관성이 구현 되지 않으므로 자동화에 사용 해서는 안됩니다 . 대신,이 같은 명령 statfind쓸 때 스크립트를.
Paddy Landau

1
우수한. 나는이 작은 보물에 대해 몰랐다. * nix / linux 환경에서 아직 발견되지 않은 많은 것들이 있습니다.
Ken Ingram

1

나는 시도했다

ls -l $filename | cut -d ' ' -f '6-8'

그러나 날짜가 10보다 작 으면 시간이 누락됩니다. 10보다 작 으면 날짜 이전에 추가 공간이 있기 때문입니다.

filename="test.txt"
ls -l $filename | awk -F ' ' '{print $6" "$7" "$8}'

awk 명령은 모든 공백으로 구분 된 필드를 인쇄합니다 (-F ''). 그것이 효과가 있기를 바랍니다. 나는 이것이 원래의 질문에 대답하는 것이 아니라 단지 날짜와 시간에 대한 ls 명령에 대한 설명 만 알고 있다는 것을 알고 있습니다. 당신이 구글 "우분투 파일의 날짜와 시간을 얻을 때"내가 년이 필요하지 않기 때문에 내가 찾고 있던 질문이 맨 위에 나열됩니다. 연도, 날짜 및 시간에 대해 아래 명령 중 하나를 시도 할 수 있습니다. % m은 월 번호를 인쇄합니다. % b는 월 약어를 인쇄합니다. 시간과 분이 필요하지 않으면 % H : % M을 삭제하십시오. % -d는 그 날의 선행 0을 인쇄하지 않습니다.

date -r $filename +"%Y %m %-d %H:%M"
date -r $filename +"%y %m %-d %H:%M"
date -r $filename +"%Y %b %-d %H:%M"
date -r $filename +"%y %b %-d %H:%M"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.