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などを表示します。