gpt4 book ai didi

linux - Unix 中 ls -lsh 中的“总计”

转载 作者:太空宇宙 更新时间:2023-11-04 09:33:09 24 4
gpt4 key购买 nike

我正在尝试使用 ls -lsh 命令仅将文件大小输出到文件。但它也显示总数。 我需要这样的东西:

。 ./sample.txt 4.0K
./multisample.txt4.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)

最佳答案

Don't parse ls .

最好的方法是:

# 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com