用于打印文件名及其大小的Shell代码

时间:2014-05-10 16:59:23

标签: bash shell terminal

我需要创建一个shell命令,列出目录中的所有文件名及其大小。我写了这个:

ls -l | awk ' {print $9, $5} '

问题是,只需9美元,它就会打印出文件名的第一个单词。 有什么提示让它打印全名?

1 个答案:

答案 0 :(得分:3)

而不是parsing ls,请使用find

find . -type f -printf "%s\t%f\n"

%f指令打印文件名,删除了前导目录。 %s生成以字节为单位的文件大小。

要将列表限制在当前目录中,请使用-maxdepth

find . -maxdepth 1 -type f -printf "%s\t%f\n"

您也可以使用stat

stat --printf "%s\t%n\n" *