linux - 在特定目录路径中查找文件
问题描述
我正在尝试设置一个 cron 作业来删除服务器上某个路径中生成的旧文件。
我的问题是我只想清理cleanupdir
在许多父目录中重复的命名中的旧文件。
写出所有这些非常耗时:
find ~/dir\ 1/cleanupdir/ -name *.htm -mtime +7 -delete
find ~/dir\ 2/cleanupdir/ -name *.htm -mtime +7 -delete
find ~/dir\ 3/cleanupdir/ -name *.htm -mtime +7 -delete
...
运行它会删除许多我想保留的文件
find ~/ -name *.htm -mtime +7 -delete
理想情况下,我想要路径通配符之类的东西,这样我就可以运行
find ~/*/cleanupdir/ -name *.htm -mtime +7 -delete
但这似乎不受支持
我的另一个尝试是做类似的事情
find ~/ *.htm -mtime +7 | grep /cleanupdir/ | xargs rm
但是dir 1
etc 目录中的空格意味着这不起作用。
要么使用 bash 脚本,要么使用 find 的巧妙单行代码对我有用,正如我所说,它专门用于 cronjob。
解决方案
您的最后一次尝试看起来不错,只是您需要引用通配符,以便 shell 不会将其扩展为*.htm
当前目录中的文件列表。
find ~/*/cleanupdir/ -name '*.htm' -mtime +7 -delete
推荐阅读
- css - 如何在我创建的 npm 包中导入 css
- reactjs - 我无法在 react-native Jest 中运行单元测试?
- reactjs - 未处理的承诺拒绝:未定义不是 Firebase 参考上的函数
- azure - 为 keyvault 的 virualNetworkRules 添加 ARM 模板
- python - 在 Python 中实现 ggplot + glm 误差估计
- python - 允许用户定义变量,并替换为值
- bash - 从带有 x-terminal-emulator 的 bash 脚本启动时,Google Datastore Emulator 进程失效,我该如何防止这种情况发生?
- flask - 烧瓶从另一个表中删除项目
- android - 如果应用程序未关闭,则每次运行时都会向应用程序添加多个线程
- javascript - jQuery 脚本阻止 HTML 在 Woocommerce 主题中加载