我在一个文件夹中有日志文件。这些文件在达到一定大小后会创建一个新文件old_name.log1
并写入其中。
现在文件很多,没法一个一个清除,想删除old_name.log1
,old_name.log2
然后清除old_name.log
。
file_name 可以是任意名称。但是文件以 结尾.log
,并且其扩展文件以.log1
、.log2
等结尾。该怎么做?
答案1
要删除 .log1、.log2 等文件:
rm *.log[1-9]*
rm
- 删除文件*.log[1-9]*
- 当前目录中包含.log
以下字符的所有文件:数字 1-9,然后是其他内容
要在运行命令之前测试它,请将 替换为rm
。echo
它将打印匹配的文件。
要截断 .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* 文件...
- 在
Files
窗口中,打开日志文件所在的目录 - 搜索。日志文件
Select All
,按住 Control 键并单击任意文件以排除(如活动和打开的 *.log)- 然后
Move to Trash
笔记:如果您希望“清除” .log 文件,请关闭生成当前 .log 文件的应用程序Move to Trash
,然后使用 删除当前 .log 文件,然后在文件夹中单击鼠标右键,选择New Document
,然后Blank Document
,并Rename...
使用正确的 .log 文件名。