是否可以使 ls -l 输出以千为单位的数字大小字段?如果是这样,怎么办?
例如:
$ ls -l
-rw-rw---- 1 dahl dahl 43,210,052 2012-01-01 21:52 test.py
(注意尺寸中的逗号)。
也许通过修改我正在使用的语言环境中的 LC_NUMERIC 设置(en_US.utf8)?
我使用的是 Kubuntu 12.04 LTS。
答案1
前面带有 ' 的块大小规范会导致输出大小以千位分隔符显示。 (请注意,仅指定块大小是不够的)。
所以根据你想要的,你可以尝试
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\""
答案2
使用 ast-open 的ls
(也是作为 ast-open 的一部分构建的 ifls
的内置函数ksh93
):
$ 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"
答案3
从手册页
--block-size=SIZE
scale sizes by SIZE before printing them. E.g., `--block-size=M'
prints sizes in units of 1,048,576 bytes. See SIZE format below.
_这是 ls 的手册页,记住 man 是你最好的朋友,在你的终端中输入“man man”来了解它有多有用。
ls
List information about files.
Syntax
ls [Options]... [File]...
Key
Sort entries alphabetically if none of -cftuSUX nor --sort.
-a, --all Do not hide entries starting with .
-A, --almost-all Do not list implied . and ..
-b, --escape Print octal escapes for nongraphic characters
--block-size=SIZE Use SIZE-byte blocks
-B, --ignore-backups Do not list implied entries ending with ~
-c Sort by change time; with -l: show ctime
-C List entries by columns
--color[=WHEN] Control whether color is used to distinguish file
types. WHEN may be `never', `always', or `auto'
-d, --directory List directory entries instead of contents
-D, --dired Generate output designed for Emacs' dired mode
-f Do not sort, enable -aU, disable -lst
-F, --classify Append indicator (one of */=@|) to entries
--format=WORD Across -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
--full-time List both full date and full time
-g (ignored)
-G, --no-group Inhibit display of group information
-h, --human-readable Print sizes in human readable format (e.g., 1K 234M 2G)
-H, --si Likewise, but use powers of 1000 not 1024
--indicator-style=WORD Append indicator with style WORD to entry names:
none (default), classify (-F), file-type (-p)
-i, --inode Print index number of each file
-I, --ignore=PATTERN Do not list implied entries matching shell PATTERN
-k, --kilobytes Like --block-size=1024
-l Use a long listing format
-L, --dereference List entries pointed to by symbolic links
-m Fill width with a comma separated list of entries
-n, --numeric-uid-gid List numeric UIDs and GIDs instead of names
-N, --literal Print raw entry names (don't treat e.g. control
characters specially)
-o Use long listing format without group info
-p, --file-type Append indicator (one of /=@|) to entries
-q, --hide-control-chars Print ? instead of non graphic characters
--show-control-chars Show non graphic characters as-is (default)
-Q, --quote-name Enclose entry names in double quotes
--quoting-style=WORD Use quoting style WORD for entry names:
literal, shell, shell-always, c, escape
-r, --reverse Reverse order while sorting
-R, --recursive List subdirectories recursively
-s, --size Print size of each file, in blocks
-S Sort by file size
--sort=WORD time -t, version -v, status -c
size -S, extension -X, none -U
atime -u, access -u, use -u
--time=WORD Show time as WORD instead of modification time:
atime, access, use, ctime or status;
also use this as a sort key if --sort=time
-t sort by modification time
-T, --tabsize=COLS assume tab stops at each COLS instead of 8
-u sort by last access time; with -l: show atime
-U do not sort; list entries in directory order
-v sort by version
-w, --width=COLS assume screen width instead of current value
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-1 list one file per line
--help display help and exit
--version output version information and exit