ext4 파티션에 있는 파일의 crtime을 단일 숫자 또는 문자열로 얻는 방법

ext4 파티션에 있는 파일의 crtime을 단일 숫자 또는 문자열로 얻는 방법

추가 출력 없이 날짜 및 시계 형식이 아닌 Unix epoch 초 단위로 16진수 또는 10진수 형식으로 파일의 crtime을 얻는 방법을 찾고 있습니다.

이 명령은 추가합니다추가 텍스트출력 상단에 있는 내용(예: "debugfs 1.42.12 (2014년 8월 29일)")은 grep, sed 등을 사용하여 제거할 수 없습니다.

debugfs -R 'stat <7473635>' /dev/sda7 | grep ctime

이 명령은개정하다UNIX epoch 초 단위의 시간입니다.

date -r default.txt +%s

또한 내가 본 다른 모든 게시물에서는 UNIX 시대 시간이 아닌 날짜 및 시계로 파일의 crtime을 얻습니다. 요약하자면, Unix epoch 초 단위로 ext4 fs에서 파일 생성 시간만 얻을 수 있는 방법은 무엇입니까?

답변1

grepPCRE( -P)와 함께 사용하여 필요한 부분을 추출하고 입력으로 사용할 수 있습니다 date.

date --date="$(sudo debugfs .... |& grep -Po '^crtime.*-\s\K.*$')" '+%s'

또는

date --date="$(sudo debugfs .... 2>/dev/null | grep -Po '^crtime.*-\s\K.*$')" '+%s'

예를 들어:

$ date --date="$(sudo debugfs -R 'stat <677051>' /dev/sda3 |& grep -Po '^crtime.*-\s\K.*$')" '+%s'
1442488264

다음을 사용할 수도 있습니다 sed.

date --date="$(sudo debugfs .... |& sed -n 's/^crtime.*- \(.*\)$/\1/p')" '+%s'

또는

date --date="$(sudo debugfs .... 2>/dev/null | sed -n 's/^crtime.*- \(.*\)$/\1/p')" '+%s'

예를 들어:

$ date --date="$(sudo debugfs -R 'stat <677051>' /dev/sda3 |& sed -n 's/^crtime.*- \(.*\)$/\1/p')" '+%s'
1442488264

관련 정보