首页 > 解决方案 > 用于递归查找和列出最大文件的 Shell 脚本,要求确认删除它们,如果确认,则删除它们

问题描述

我想编写一个 shell 脚本,递归查找扩展名为 .log 的最大文件并将它们列出。它必须进一步要求确认以删除它们。如果确认,则必须删除该文件。我是 shell 脚本的新手,最接近的是:

#!/bin/bash cd / find . -name "*.log" -type f -exec du -sh {} + | sort -rh | head -n 10

这列出了前 10 个 .log 文件(最大的文件在前)。但是,我不知道如何从这里继续。如何解析此列表并要求确认删除每个文件并继续进行?请帮忙

标签: shell

解决方案


尝试

rm -i $(find . -name "*.log" -type f -exec du -sh {} + | sort -rh | head -n 10)

基本上,获取 find 命令的输出并将其与“rm -i”一起使用。“rm -i”强制 rm 命令是交互式的。如果要删除文件,它将提示您。

希望这可以帮助。


推荐阅读