是否可以找到大小仅大于 x MB 的目录。假设,我想在 /home 下找到所有大小大于 1000MB 且只有 1 个 maxdepth 的目录,如何找到它?
问问题
35465 次
2 回答
74
如果我正确地解释了您的问题,我认为这可能就是您想要的:
cd /home
du -sm * | awk '$1 > 1000'
这将显示/home
包含超过 1000MB 的所有目录。如果您的版本du
不支持-m
,您可以使用du -sk
并调整该awk
位以查找超过 1,000,000KB 的...
于 2013-07-11T16:55:46.490 回答
3
根据手册页,该-k
选项符合POSIX ,但该-m
选项不符合。
所以以下内容更便携(即,如果你在 BSD 上,它仍然可以工作)但本质上是一样的:
du -sk * | awk -v m=1000 '$1 > 1024*m'
只需将 awk 变量m设置为您希望作为截止值的兆字节数。
我发现这对于移动一批文件非常有用,因此在这里发布是为了其他人的利益。
要扩展它以将所有符合您条件的文件移动到另一个目录,您可以调整awk
命令以仅打印移动所需的位(不包括大小),然后循环:
# moving all directories meeting the size criteria to another location:
for d in $(du -sk * | awk -v m=1000 '$1 > 1024*m {print $2}')
do
mv $d $DESTINATION
done
于 2021-11-10T16:00:49.693 回答