https://unix.stackexchange.com/a/240424/674展示了一种在目录下查找最近更改的三个文件(直接或间接)的方法。
find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}'
stat -c '%Y %n'
我尝试通过替换为 来查找目录下的三个最大文件stat -c '%B %n'
。但它似乎无法正常工作。因为:
%b - Number of blocks allocated (see ‘%B’)
%B - The size in bytes of each block reported by ‘%b’
我的猜测是,它%b
不会报告文件的大小,但我不确定。
那我该怎么办呢?
答案1
%b 确实报告文件的大小,但它以块为单位报告。这对于您的目的来说可能足够好,也可能不够好。ls -l
如果需要,您始终可以使用来获取字节:
find . -type f | xargs ls -l | sort -n -k5 | tail -n 3
如果文件名包含空格,则标准解决方案是
find . -type f -print0 | xargs -0 ls -l | ...
这些-print0
品牌find
使用空字节作为名称之间的分隔符,然后将其用作 的分隔符xargs -0
。