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 - 将从上一个命令找到的文件列表中删除每个文件
我有这样一个文件名:
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 - 将从上一个命令找到的文件列表中删除每个文件