使用rm *text*
您可以删除所有包含特定字符串的文件。我将如何使它删除除具有特定通配符的文件之外的所有文件?
我尝试使用我发现的其他东西,例如:
find . -type f -print0 | xargs --null grep -Z -L 'text' | xargs --null rm
或者
grep -r -L -Z 'text' . | xargs --null rm
但这些不起作用。相反,他们正在删除给定目录中的所有文件。
我怎么能这样做?
使用rm *text*
您可以删除所有包含特定字符串的文件。我将如何使它删除除具有特定通配符的文件之外的所有文件?
我尝试使用我发现的其他东西,例如:
find . -type f -print0 | xargs --null grep -Z -L 'text' | xargs --null rm
或者
grep -r -L -Z 'text' . | xargs --null rm
但这些不起作用。相反,他们正在删除给定目录中的所有文件。
我怎么能这样做?
您可以通过启用扩展 glob 来做到这一点:
现在你可以做例如
或者在你的例子中
与
find
:请注意,这将删除
*text*
当前文件夹及其子文件夹中与指定模式 ( ) 不匹配的所有文件。如果您只需要删除在当前文件夹中找到的文件,您可以使用该
-maxdepth 1
标志: