Files

如何在一個目錄下找到三個最大的文件?

  • June 14, 2018

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不會報告文件的大小,但我不確定。

那我該怎麼辦?

%b 確實報告了文件的大小,但它以塊的形式報告。對於您的目的而言,這可能足夠好,也可能不夠好。如果需要,您可以隨時使用ls -l來獲取字節:

find . -type f | xargs ls -l | sort -n -k5 | tail -n 3

如果文件名包含空格,則標準解決方案是

find . -type f -print0 | xargs -0 ls -l | ...

make-print0使用find空字節作為名稱之間的分隔符,然後將其用作分隔符xargs -0

引用自:https://unix.stackexchange.com/questions/449906