Files
如何在一個目錄下找到三個最大的文件?
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
。