web-dev-qa-db-ja.com

桁数が千でグループ化されたls -l sizeフィールドを出力しますか?

Ls -lに、数字を数千単位でグループ化したサイズフィールドを出力させることは可能ですか?もしそうなら、どうですか?

例えば:

$ ls -l
-rw-rw---- 1 dahl dahl 43,210,052 2012-01-01 21:52 test.py

(サイズのコンマに注意してください)。

たぶん、私が使用しているロケール(en_US.utf8)内のLC_NUMERIC設定を変更することによってですか?

Kubuntu 12.04LTSを使用しています。

13
Roger Dahl

ブロックサイズ-GNU Coreutils は言う

'が前に付いたブロックサイズ指定により、出力サイズが数千の区切り文字で表示されます。 (ブロックサイズを指定するだけでは不十分であることに注意してください)。

だからあなたが望むものに応じて、あなたは試すことができます

BLOCK_SIZE="'1" ls -l
BLOCK_SIZE="'1kB" ls -l

または

ls -l --block-size="'1"
ls -l --block-size="'1kB"

あなたはそれを使用して永続的にすることができます

export BLOCK_SIZE="'1"
export BLOCK_SIZE="'1kB"

または

alias ls="ls --block-size=\"'1\""
alias ls="ls --block-size=\"'1kB\""
20
Mikel

Ast-openのls(ast-openの一部としてビルドされた場合は_ksh93_のlsビルトインも):

_$ ls -rSZ "%(mode)s %3(nlink)u %-8(uid)s %-8(gid)s %8(device:case::%'(size)u:*:%(device)s)s %(mtime)s %(name)s%(linkop:case:?*: %(linkop)s %(linkpath)s)s"
[...]
-rwxrwxr-x   1 chazelas chazelas 2,701,278 Apr 27  2016 nmake
-rwxrwxr-x   2 chazelas chazelas 4,515,954 Apr 27  2016 ksh
-rwxrwxr-x   2 chazelas chazelas 4,515,954 Apr 27  2016 bash
-rwxrwxr-x   1 chazelas chazelas 4,542,177 Apr 27  2016 shcomp
-rwxrwxr-x   1 chazelas chazelas 6,830,418 Apr 27  2016 tksh
_

これは通常_ls -l_に使用される形式ですが、%(size)u%'(size)uに変更され、千の区切り文字が表示されます。

より読みやすい:

_LONG_FORMAT_WITH_THOUSAND_SEP="\
%(mode)s \
%3(nlink)u \
%-8(uid)s \
%-8(gid)s \
%8(device:case::%'(size)u:*:%(device)s)s \
%(mtime)s \
%(name)s\
%(linkop:case:?*: %(linkop)s %(linkpath)s)s"

ls -rSZ "$LONG_FORMAT_WITH_THOUSAND_SEP"
_
0