LINUX 如何删除包含特定名称的文件?

LINUX How to delete file contains certain name?

我有这样一个文件名:

filelog20161026

我想使用命令linux删除它,是否可以使用rmdir? 这很困难,因为文件名,尤其是部分日期总是根据日期时间更改。 所以,我想删除文件名包含文件日志名称的地方。 可能吗?我将以编程方式 运行 命令,但我不知道如何用 y 确认它。

您可以使用 glob 表达式:

$ rm filelog*

在 Linux 上,您可以使用正则表达式 运行 为所有找到的参数创建一个程序。

$ rm filelog*

将 运行 rm 在每个找到的以 filelog 开头然后以任意数量的任意字符继续的文件上。

这将删除此目录中的所有文件。如果你想 运行 它在整个磁盘上 - 非常危险 - 你可以使用:

$ rm -path "*filelog*"

编辑:

exec("y | rm \"filelog*\"");

要删除名称格式为 filelog20161026 的所有文件,请使用以下方法:

ls | grep -P "filelog[0-9]{8}" | xargs -d"\n" rm

grep -P "filelog[0-9]{8}" - 将找到匹配指定模式的所有文件
xargs -d"\n" rm - 将从上一个命令找到的文件列表中删除每个文件