特定のフォルダを目的の形式で表示する単純なヘルパー関数を作成しています。
find . -maxdepth 1 -not -name "." -printf '[%TY-%Tm-%Td]\t%s\t%f\n' | sort -n
しかし、ファイルサイズをより良い形式で表示したいと思います。私が見つけたこの回答私はそれを使用してというbash関数を作成しますhr
。
user@host:~$ hr 12345
12M
私は次のように通貨でそれを試しましたfind
。
find . -maxdepth 1 -not -name "." -printf '[%TY-%Tm-%Td]\t'$(hr %s)'\t%f\n' | sort -n
ただし、引き続きファイルサイズ全体が引き続き表示されます。期待どおりに機能するにはどうすればよいですか?
ベストアンサー1
numfmt
from gnu coreutils
(8.21
またはそれ以上)を使用して、ファイル名が正常であるとします。
find . -type f -printf '[%TY-%Tm-%Td]\t%s\t%f\n' | numfmt --field=2 --to=iec-i
--padding=
--format=
オプションを使用すると、出力形式をさらに指定できます。最新バージョン出力精度も設定できます。たとえば、次のようになります。
... | numfmt --field=2 --to=iec-i --suffix=B --padding=8
または
... | numfmt --field=2 --to=iec-i --format='%10.3f'
権限とリンク数の列が気に入らない場合は、次を使用してくださいgnu
ls
。
ls -gohAt --time-style=+%Y-%m-%d