繁体   English   中英

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

[英]Find subdirectory and remove files not containing a specific string LINUX

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

find . -type f -print0 | xargs --null grep -Z -L 'pass' | xargs --null rm

但它是无效的cdMath在各个的100 subdirectoriesrm unwanted文件。

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

以下应该可以解决问题

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM