我正在尝试使用ls-lsh命令只将文件大小输出到文件。但它也显示了整体性。我需要这样的东西。./sample.txt 4.0公里
./multisample.txt文件
4.0K,但显示如下:。./test.txt./multitest.txt
4.0公里
4.0公里
.:
全部的
4.0公里
4.0公里
4.0公里
我使用的命令是:ls-lsh$LISTNAME | awk'{print$1}'>/home/test/$date.log其中$LISTNAME包含文件名。请让我知道如何只显示文件大小,以及以我需要的格式显示(文件名1 tab file size和下一行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中的'Total',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29421768/

10-11 21:22