如何清除以`.log`结尾的文件夹中的所有文件?

spi*_*ree 2 delete files 18.04

我在一个文件夹中有日志文件。一定大小后的这些文件正在创建一个新文件old_name.log1并写入其中。

现在文件很多,无法一一清除。我想删除old_name.log1old_name.log2等疏通old_name.log

file_name 可以是任何东西。但文件结束.log与它的扩展文件结束.log1.log2等等。怎么办呢?

Ser*_*nyy 5

请注意,OP 显然想要截断文件。在这种情况下,所需的命令是

find /path/to/dir -regextype sed -regex ".*\.log[1-9]*" -exec truncate -s 0 {} \;
Run Code Online (Sandbox Code Playgroud)

或者,在 bash

shopt -s globstar
truncate -s 0 **/*.log[1-9]
Run Code Online (Sandbox Code Playgroud)

如果要清除.log名称中包含的任何文件

find /path/to/dir -name "*.log*"
Run Code Online (Sandbox Code Playgroud)

如果您.log[digit]专门针对目标,请使用

find /path/to/dir -regextype sed -regex ".*\.log[1-9]*"
Run Code Online (Sandbox Code Playgroud)

一旦您验证这两个命令中的任何一个找到您想要的文件,附加-delete到命令以进行实际删除


wja*_*rea 5

删除 .log1、.log2 等文件:

rm *.log[1-9]*
Run Code Online (Sandbox Code Playgroud)
  • rm - 删除文件
  • *.log[1-9]*- 当前目录中包含.log后跟数字 1-9 然后是其他任何内容的所有文件

要运行它之前测试命令,替换rmecho。它将打印匹配的文件。

要截断 .log 文件:

echo -n | tee *.log
Run Code Online (Sandbox Code Playgroud)
  • echo -n - 不打印
  • tee *.log - 从标准输入写入当前目录中的所有 .log 文件