目标是递归地 grep 遍历每个文件,如果是的话不是有字符串“44c9ea3abbd24”文件内容(不是文件名),然后将其删除。目标是一个 python .py 文件,并由文件恢复名称随机重命名。
如果无法做到这一点,那么也许可以将包含的文件复制到目录 /filtered?
答案1
find /myPhotorec -type f ! -exec grep -qF '44c9ea3abbd24' {} ';' -print -delete
这将找到目录中或目录下的所有常规文件/myPhotorec
,测试它们是否包含给定的字符串(在文件的内容中),对于每个不包含该字符串的文件,显示路径名并将其删除。
如果您find
不支持-delete
,则将该部分替换为-exec rm {} +
.
如果您想手动确认每次删除,请更改-delete
为-ok rm {} ';'
。
关于find ... -exec ...
:了解“find”的 -exec 选项
答案2
我想就这样做:
rm -rf `find /myPhotorec -name "*" | grep -v "44c9ea3abbd24"`