【发布时间】:2015-04-02 20:21:37
【问题描述】:
我正在尝试使用 ls -lsh 命令仅将文件大小输出到文件。但它也显示总数。 我需要类似的东西:
。 ./sample.txt 4.0K
./multisample.txt
4.0K
但显示如下:
. ./test.txt ./multitest.txt
4.0K
4.0K
.:
总计
4.0K
4.0K
4.0K
我使用的命令是: ls -lsh $LISTNAME |awk '{print $1}' >> /home/test/$date.log
其中$LISTNAME 包含文件名。
请告诉我如何只显示文件大小以及我需要的格式(文件名1 tab 文件大小和下一行文件名2 tab 文件大小)
【问题讨论】:
-
您知道文件名可以包含制表符吗?
-
坦率地说,最可靠/错误最少的方法是不用自己编写代码来将数字更改为人类可读的值(我过去就是这样做的)是一个单独的
du -sh每个输入文件调用,然后只提取输出的大小部分。它既混乱又低效,但它使您摆脱了解析文件名的工作。 (此外,现代 GNUdu支持-0参数,这有助于消除歧义)。