在Unix中查找大小的文件
我正在寻找一个Unix命令来打印它的大小的文件。 我用这个,但它没有工作。
find . -size +10000k -print.
我想要打印文件的大小以及文件名/目录。
find . -size +10000k -exec ls -sd {} +
如果你的版本的find
不接受+
符号(这跟xargs
),那么你可以使用(GNU find
和xargs
,所以find
可能的支持+
无论如何):
find . -size +10000k -print0 | xargs -0 ls -sd
或者你可以用\;
replace+
\;
(而且生活在这种相对低效率的情况下),否则你可能会遇到名字空间引起的问题,并使用便携式:
find . -size +10000k -print | xargs ls -sd
ls
命令中的-d
确保了如果find一个目录(不太可能,但是…),那么将打印目录信息,而不是目录中的文件。 而且,如果您正在查找超过1 MB的文件(如现在删除的注释build议),则需要将+10000k
调整为1000k
或1000k
或+1024k
(对于512字节块,默认单位为大小)。 这将列出大小,然后列出文件名称。 当然,您可以通过将-type f
添加到find
命令来避免使用-d
。
Find可以用%s打印出以字节为单位的文件大小,作为printf。 %h /%f分别打印目录前缀和文件名。 \ n强制换行。
例
find . -size +10000k -printf "%h/%f,%s\n"
产量
./DOTT/extract/DOTT/TENTACLE.001,11358470 ./DOTT/Day Of The Tentacle.nrg,297308316 ./DOTT/foo.iso,297001116
假设你有GNU发现:
find . -size +10000k -printf '%s %f\n'
如果你需要一个固定宽度的尺寸字段,你可以做一些事情:
find . -size +10000k -printf '%10s %f\n'
请注意, -size +1000k
select至less10,240,000字节的文件( k
是1024,而不是1000)。 你在评论中说你想要大于1M的文件; 如果这是1024 * 1024字节,那么这个:
find . -size +1M ...
将做的伎俩 – 除了它还将打印文件的大小和名称正好是 1024 * 1024字节。 如果有问题,你可以使用:
find . -size +1048575c ...
你需要决定你想要什么标准。