linux - 查找子目录并删除不包含特定字符串的文件 LINUX

标签 linux directory find subdirectory

给定主路径 ./class 并且在 class 中是子目录 student1,student2, student3...student100. 在这些子目录中还有其他子目录history,geography,Math。这些子目录中的每一个都有数百个文件。我想保留所有在 Math 中具有字符串 pass 的文件,而不影响其他主题中的文件。到目前为止,我可以cdMath 并执行此操作:

找到 . -类型 f -print0 | xargs --null grep -Z -L '通过' | xargs --null rm

但是cd100个子目录rm中的Math是无效的 不需要的 文件。

一个 grep 如何只 Math 并执行上面的代码?

最佳答案

下面应该可以解决问题

for i in `find . -type d -name *Math* -exec find {} -type f -not -name *pass* \;`; do rm $i ; done

关于linux - 查找子目录并删除不包含特定字符串的文件 LINUX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48691119/

相关文章:

.htaccess - 如何重定向到 Laravel 上的公共(public)文件夹

Bash:创建不同格式和文件夹的音乐文件副本

regex - 在特定目录的文件中查找和替换字符串

linux - 在源代码级别是否有任何 linux 内核模块的模块依赖定义?

linux - 使用 unix 编写脚本以获取用户运行的进程

powershell - 使用 Powershell 强制删除正在使用的文件夹

delphi - 在delphi中使用SelectDirectory时从根目录向上搜索

regex - 如何使用带有正则表达式的find,-exec,grep和sed替换部分文本行?

linux - 如何在 linux 上监控进程的线程数?

linux - R Windows/Linux 猫换行符格式之间的差异