stat 형식을 ls -l과 같은 형식으로 지정하세요.

stat 형식을 ls -l과 같은 형식으로 지정하세요.

8진수를 볼 수 있도록 ls -l가능한 한 많은 사본을 나열하겠습니다 .stat

나는 매우 가깝다stat -c '%a------- %h %U %G %5s %.16y %n' *

me@PC:/etc/apt$ ls -l
total 76
drwxr-xr-x 2 root root  4096 Sep  2 15:50 apt.conf.d
drwxr-xr-x 2 root root  4096 Apr  9  2020 auth.conf.d
drwxr-xr-x 2 root root  4096 Jul 28 03:26 keyrings
drwxr-xr-x 2 root root  4096 Jul 12  2021 preferences.d
-rw-rw-r-- 1 root root  2796 Aug 23 11:02 sources.list
drwxr-xr-x 2 root root  4096 Sep  2 15:50 sources.list.d
-rw-rw-r-- 1 root root  3071 Aug 23 11:02 sources.list.distUpgrade
-rw-rw-r-- 1 root root  3071 Jun 27 13:04 sources.list.save
-rw-r--r-- 1 root root 18951 Mar 27 17:15 trusted.gpg
-rw-r--r-- 1 root root 17320 Feb  7  2022 trusted.gpg~
drwxr-xr-x 2 root root  4096 Sep  2 15:50 trusted.gpg.d

me@PC:/etc/apt$ stat -c '%a------- %h %U %G %5s %.16y %n' *
755------- 2 root root  4096 2022-09-02 15:50 apt.conf.d
755------- 2 root root  4096 2020-04-09 06:21 auth.conf.d
755------- 2 root root  4096 2022-07-28 03:26 keyrings
755------- 2 root root  4096 2021-07-12 06:26 preferences.d
664------- 1 root root  2796 2022-08-23 11:02 sources.list
755------- 2 root root  4096 2022-09-02 15:50 sources.list.d
664------- 1 root root  3071 2022-08-23 11:02 sources.list.distUpgrade
664------- 1 root root  3071 2022-06-27 13:04 sources.list.save
644------- 1 root root 18951 2022-03-27 17:15 trusted.gpg
644------- 1 root root 17320 2022-02-07 22:44 trusted.gpg~
755------- 2 root root  4096 2022-09-02 15:50 trusted.gpg.d

모든 데이터가 있지만 날짜 형식이 약간 다릅니다.

xargs 및 printf 또는 다른 방법을 통해 날짜 형식을 다시 지정할 수 있습니까? 아니면 내가 얻을 수 있는 가장 가까운 값인가요?

답변1

우선 작은 스크립트는 다음과 같습니다.

IFS=$'\n'
for i in $(stat --printf="%a\t%h\t%U\t%G\t%s\t%Y\t%n\n" *); do
  IFS=$'\t' read -r -a FP <<<$i; 
  echo ${FP[0]} ${FP[1]} ${FP[2]} ${FP[3]} ${FP[4]} $(date -d@${FP[5]} "+%Y.%m.%d. %H:%M") ${FP[6]} 
done

이렇게 하면 모든 파일 속성을 처리할 수 있습니다. 예를 들어 사용자 이름이나 그룹이 너무 길면 ls는 uid/gid 등을 표시합니다.

관련 정보