删除文件名包含特定字符串的所有文件?
我改变了我的wordpress主题。 较旧的一个在服务器上创建了如此多的图像。 我的新主题不需要它们,所以我想删除所有。 我怎样才能做到这一点?
例如:
默认图片: 12_angry_men_lone_holdout.jpg
我想删除:
12_angry_men_lone_holdout-290x166.jpg 12_angry_men_lone_holdout-700x300.jpg 12_angry_men_lone_holdout-50x50.jpg
使用Digitalocean,Ubuntu 13.10。
如果它们在同一个文件夹中,则使用* wildcard来实现:
rm *text*
其中text
是文件名包含的字符串。
使用find
递归查找和删除名称中带有“text”的文件:
find -type f -name '*text*' -delete
您可能还希望在此之前运行find -type f -name '*text*'
(不带-delete
),以确保不会删除任何不打算删除的文件。
实际上,您可以在搜索字符串中的任何位置放置通配符,因此-name '12_angry_men_lone_holdout-*.jpg'
可能更适合您的情况。
试试这个:
rm -rf 12_angry_men_lone_holdout-*
这将keep 12_angry_men_lone_holdout.jpg
并删除尺寸为(290×166)的文件
请记住
rm -rf 12_angry_men_lone_holdout.*
将删除你需要的默认文件。
find . -type f -name '*[0-9]x[0-9]*' -delete
在父目录中运行它。 这将删除所有具有数字后跟“x”字符的文件,后跟其名称中的另一个数字。
还是要小心,这可能会删除原始文件,如果他们的名字包含上述模式(不太可能)。 首先运行它而不使用’-delete’来查看是否有任何具有此名称的文件。 如果是这种情况,您只需要找到更严格的模式。