我尝试在目录中打印最大的文件,但我无法解释为什么我得到768而不是726491. $ DIR是目录而$ ext是文件扩展名。我的脚本应该在破折号中工作。
find "${DIR}" -type f -name "*.$ext" -exec du -a {} + |
sort -n -r | head -n 1 | cut -f1
768 ./subfolder/test.jpg
-rw-r--r-- 1 username vti 726491 19 mar 12:46 test.jpg
drwxr-xr-x 2 username vti 512 19 mar 12:46 subsubfolder
drwxr-xr-x 3 username vti 512 19 mar 12:46 .
drwxr-xr-x 4 username vti 512 19 mar 12:46 ..
答案 0 :(得分:0)
du
,默认情况下将磁盘使用情况显示为块大小(1024字节/ 512字节),而不是以字节为单位。
如果您希望du
打印bytes
,则需要指定-b
(或--bytes
)选项:
find "${DIR}" -type f -name "*.$ext" -exec du -a -b {} + | ..
^^
Accoridng to DU(1)
:
--apparent-size print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in ('sparse') files, internal fragmentation, indirect blocks, and the like -B, --block-size=SIZE scale sizes by SIZE before printing them; e.g., '-BM' prints sizes in units of 1,048,576 bytes; see SIZE format below -b, --bytes equivalent to '--apparent-size --block-size=1'
<强>更新强>
在系统上,如果不支持-b
选项,请改用-B 1
选项:
find "${DIR}" -type f -name "*.$ext" -exec du -a -B 1 {} + | ..
UPDATE2 在FreeBSD中,您需要指定-A
选项以显示外观尺寸。