找出大文件

找出大文件

我的 Cent OS 机器中有一个目录,用户可以将所有文件放入其中。我想找出哪个用户正在将大文件放入文件夹中。

这种情况一天天增加并且想要了解大文件。任何命令,因为我不想手动检查它们。

答案1

你会想要使用类似的东西:

while read directory
do
    find "$directory" -size +1M -exec stat --format="%U (id: %u), file: %n" {} \;
done << EOT
/path/to/folder 1
/path/to/my folder 2
EOT

+1M查找超过 1M 的文件。

stat 格式将显示用户名、其用户 ID 和相应的文件名,以查找任何匹配的内容。

跟进评论,假设我想根据修改时间过滤这些内容,例如find不应匹配过去 24 小时内修改的任何文件,那么我可以使用:

find "$directory" -size +1M -mtime +1 -exec stat --format="%U (id: %u), file: %n" {} \;

答案2

for i in `cat /etc/passwd | awk -F ":" '$3 >= 500 {print $1}'`; do find path -type f  -size +1M -user $i -exec ls -ltr {} \;; done | awk '{print $3,$NF}'

以上列出了文件大小大于1M的文件和用户名。经检查其工作正常。让我知道更新情况

它还会忽略系统用户的文件。所以只有我们指定条件猫/etc/passwd | awk -F ":" '$3 >= 500 {print $1}

相关内容