Tar
tar --list -v
可以以人類可讀的格式列出文件大小嗎?
我想詳細列出
tar
文件的成員,並以人類可讀的格式而不是字節顯示文件大小,是否tar
可以選擇這樣做?
沒有內置
tar
選項,但您可以過濾其輸出。例如,使用人性化:#!/usr/bin/env python import fileinput import humanize for line in fileinput.input(): (perm, owner, size, date, time, filename) = tuple(line.split()) print '{0} {1} {2:>9} {3} {4} {5}'.format(perm, owner, humanize.naturalsize(size, gnu=True), date, time, filename)
將此另存為eg
humantvf
,然後tar tvf ... | ./humantvf
你可以
awk
一起使用numfmt
:tar --list --verbose --file myfiles.tar.gz | \ awk '{ \ "numfmt --to=iec-i --format=%7.f --suffix=B " $3 | getline x; \ $3=x; \ print $0 \ }'
這會修改第三列(即文件大小列),將字節數替換為從
numfmt
.結果:
-rw-r--r-- user/user 16KiB 2020-01-01 12:34 pics/camel.jpg -rw-r--r-- user/user 2KiB 2019-12-01 12:34 pics/cat.jpg -rw-r--r-- user/user 410KiB 2019-12-01 12:34 pics/panda.jpg -rw-r--r-- user/user 2KiB 2019-12-01 12:34 pics/unicorn.gif # ...
請注意,這
numfmt
是特定於 GNU coreutils 的。它從 GNU coreutils 8.21(2013 年初發布)開始可用。