使用bash获取文件大小(以字节为单位)(Ubuntu)

时间:2016-03-09 14:28:38

标签: bash

嗨,我正在寻找一种以字节为单位输出文件大小的方法。无论我尝试什么,我将获得96或96k而不是96000。

if [[ -d $1 ]]; then    
        largestN=$(find $1 -depth -type f | tr '\n' '\0' | du -s --files0-from=- | sort | tail -n 1 | awk '{print $2}')
        largestS=$(find $1 -depth -type f | tr '\n' '\0' | du -h --files0-from=- | sort | tail -n 1 | awk '{print $1}')
            echo "The largest file is $largestN which is $largestS bytes."  
else    
    echo "$1 is not a directory..."
fi

这打印"最大的文件[file]是96k字节"

2 个答案:

答案 0 :(得分:0)

-b选项
$ du -b ...

答案 1 :(得分:0)

看起来您正在尝试查找给定目录中的最大文件。让find为你做繁重的工作更有效(也更短):

find $1 -type f -printf '%s %p\n' | sort -n | tail -n1

此处,%s扩展为文件的大小(以字节为单位),%p扩展为文件名。