我正在尝试使用 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 filesize 和下一行 filename2 tab filesize)
最佳答案
最好的方法是:
# this assumes your filenames don't contain whitespace
stat -c $'%n\t%s' $LISTNAME
如果 $LISTNAME 是以换行符分隔的文件列表,这将在文件名中包含空格和/或制表符,但不包含换行符。假设 bash(我认为是第 4 版)
mapfile -t files <<<"$LISTNAME"
stat -c $'%n\t%s' "${files[@]}"
关于linux - Unix 中 ls -lsh 中的“总计”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29421768/