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

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

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

现在文件很多,没法一个一个清除,想删除old_name.log1old_name.log2然后清除old_name.log

file_name 可以是任意名称。但是文件以 结尾.log,并且其扩展文件以.log1.log2等结尾。该怎么做?

答案1

要删除 .log1、.log2 等文件:

rm *.log[1-9]*
  • rm- 删除文件
  • *.log[1-9]*- 当前目录中包含.log以下字符的所有文件:数字 1-9,然后是其他内容

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

要截断 .log 文件:

echo -n | tee *.log
  • echo -n- 不打印任何内容
  • tee *.log- 从标准输入写入当前目录中的所有 .log 文件

答案2

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

find /path/to/dir -regextype sed -regex ".*\.log[1-9]*" -exec truncate -s 0 {} \;

或者,在bash

shopt -s globstar
truncate -s 0 **/*.log[1-9]

如果你想清除.log名称中包含

find /path/to/dir -name "*.log*"

如果你有针对性.log[digit]地使用

find /path/to/dir -regextype sed -regex ".*\.log[1-9]*"

验证这两个命令中的任何一个都可以找到所需的文件后,将其附加-delete到命令中以进行实际删除

答案3

快速而肮脏...假设您具有这些日志文件和目录本身的权限...并且您希望删除.log* 文件...

  1. Files窗口中,打开日志文件所在的目录
  2. 搜索。日志文件
  3. Select All,按住 Control 键并单击任意文件以排除(如活动和打开的 *.log)
  4. 然后Move to Trash

笔记:如果您希望“清除” .log 文件,请关闭生成当前 .log 文件的应用程序Move to Trash,然后使用 删除当前 .log 文件,然后在文件夹中单击鼠标右键,选择New Document,然后Blank Document,并Rename...使用正确的 .log 文件名。

相关内容