2010-10-28 23:09:03 +0000 2010-10-28 23:09:03 +0000
241
241

如何找到比x字节大/小的文件?

在终端中,我如何找到大于或小于x字节的文件?

我想我可以做一些像

find . -exec ls -l {} \;

这样的事情,然后把结果用管道传输到 awk 来按文件大小过滤。但是否应该有比这更简单的方法呢?

答案 (4)

386
386
386
2010-10-28 23:37:50 +0000
8
8
8
2015-10-25 22:03:31 +0000

我认为find可能会单独使用,而不需要连接到AWK。例如,

find ~ -type f -size +2k -exec ls -sh {} \;

的小括号表示你想从哪里开始搜索,结果应该只显示大于2KB的文件。

5
5
5
2010-10-29 00:01:20 +0000

AWK对于这种事情真的是很容易做到的。下面是一些与文件大小检查有关的事情,就像你问的那样:

列表文件大于200字节的文件:

ls -l | awk '{if ($5 > 200) print $8}'

列表文件小于200字节,将列表写入文件:

ls -l | awk '{if ($5 < 200) print $8}' | tee -a filelog

列表文件为0字节,将列表记录到文件中,并删除空文件:

ls -l | awk '{if ($5 == 0) print $8}' | tee -a deletelog | xargs rm
3
3
3
2010-10-28 23:27:11 +0000

大于2000字节:

du -a . | awk '$1*512 > 2000 {print $2}'

小于2000字节:

du -a . | awk '$1*512 < 2000 {print $2} '