답변:
를 사용하지 마십시오 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 2016
Epoch 시간을 입력으로 사용하십시오 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
.
나는 시도했다
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"
ls
시스템 전체에 일관성이 구현 되지 않으므로 자동화에 사용 해서는 안됩니다 . 대신,이 같은 명령stat
및find
쓸 때 스크립트를.