shell - 用于递归查找和列出最大文件的 Shell 脚本,要求确认删除它们,如果确认,则删除它们
问题描述
我想编写一个 shell 脚本,递归查找扩展名为 .log 的最大文件并将它们列出。它必须进一步要求确认以删除它们。如果确认,则必须删除该文件。我是 shell 脚本的新手,最接近的是:
#!/bin/bash
cd /
find . -name "*.log" -type f -exec du -sh {} + | sort -rh | head -n 10
这列出了前 10 个 .log 文件(最大的文件在前)。但是,我不知道如何从这里继续。如何解析此列表并要求确认删除每个文件并继续进行?请帮忙
解决方案
尝试
rm -i $(find . -name "*.log" -type f -exec du -sh {} + | sort -rh | head -n 10)
基本上,获取 find 命令的输出并将其与“rm -i”一起使用。“rm -i”强制 rm 命令是交互式的。如果要删除文件,它将提示您。
希望这可以帮助。
推荐阅读
- flutter - 在没有用户能够更改的情况下,有什么可靠的方法可以让时间颤抖?
- python - 使用 pybind11 在多线程 C++ 程序中嵌入 Python 解释器
- mysql - 比较两个没有主键的表
- python - 无论出于何种原因,我的代码都没有运行一个段,有人可以帮助我吗?
- reactjs - 无法使用柏树在反应滑块上移动手柄
- javascript - 是否可以根据我当前所在的视图更改 Vue.js 应用程序的元数据,例如标题?
- java - JPA OneToMany - 级联对象和垃圾收集器的迭代
- javascript - 如何使用 Alpine.js 创建动画数字计数器?
- reactjs - 如何在选择输入反应管理员中设置值?
- r - r:为什么在应用 as.Date() 和 origin 时字符串显示日期而不是日期?