Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time
<?xml version="1.0" encoding="UTF-8"?>
Copyright (C) 2008-2021 Andrew Ziem
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <>.
<cleaner id="unique_id">
<!-- The label is the application name such as Bash or GIMP.
Use the same capitialization as the application uses to
refer to itself. By default, this is the only string
that is not translated. To translate it, set
the attribute translate="true". -->
<label>Application name</label>
<!-- Include a brief description of the application such as
'web browser' or 'game.' Where possible, use the same
description as another cleaner to avoid unnecessary
translations. If the description is unavailable, omit
the whole element. -->
<description>Description of the application</description>
<!-- A cleaner has one or more options. If the actions
change significantly, you may change the option ID to
avoid causing the user to deleting files unintentionally. -->
<option id="unique_id">
<!-- The option label must be specific and should quickly give
the user the jist of what the action does. Where possible,
use the same description as another cleaner to avoid
unnecessary translations. Good option labels include
"logs," "cache," and "cookies." -->
<label>Cleaning action</label>
<!-- The description precises describes what will happen. It
should begin with a verb such as "delete." -->
<description>Delete the web cache, which reduces time to display revisited pages</description>
<!-- Each option may have one warning shown to the user when
selected interactively (in the GUI) to alert him of a
special consideration or potential risk. -->
<warning>Deleting the cache will slow down application usage</warning>
<!-- An option has one or more actions.
Actions generally have two parts: a search method (how to
find a file) and a command (what to do with the file once
it is found). You should make the pattern as specific as
possible to avoid deleting files unintentionally.
search="file" finds a single file.
command="delete" deletes it. -->
<action search="file" command="delete" path="/tmp/secret.log"/>
<!-- On POSIX systems for system logs that may be in use, it's better
to truncate than to delete. -->
<action search="file" command="truncate" path="/var/log/messages"/>
<!-- search="walk.all" deletes all files and directories under the directory (but
not the parent). It walks each subdirectory too. -->
<action search="walk.all" command="delete" path="/var/tmp/"/>
<!-- search="walk.files" deletes all files (but not any directories), walking
in to each subdirectory. -->
<action search="walk.files" command="delete" path="/var/tmp/"/>
<!-- search="glob" deletes all pathnames matching the shell glob
pattern described in the Python documentation. -->
<action search="glob" command="delete" path="/tmp/*.bak"/>
<action search="glob" command="delete" path="/var/log/*.[0-9].gz"/>
<action search="glob" command="delete" path="/tmp/?.bak"/>
<!-- With search=file, glob, walk.all, and walk.files, BleachBit expands
~ to the user's personal home directory and any existing environment
variables such as $HOME and $USERPROFILE -->
<action command="delete" search="file" path="~/.xsession-errors"/>
<action command="delete" search="file" path="$USERPROFILE\_viminfo"/>
<!-- While the search="..." generates a list of files, you can filter
the list using any combination of: regex, nregex, and type.
regex and nregex are both case sensitive and both match just the
filename (i.e., not the whole path).
The following action truncates any file that ends with log.
<action command="truncate" search="walk.files" path="/var/log" regex="log$" type="f"/>
<!-- command=sqlite.vacuum defragments an SQLite 3 database -->
<action command="sqlite.vacuum" search="glob" path="/var/cache/yum/*/*.sqlite"/>
<!-- command="winreg" without the attribute 'name' deletes
Windows registry keys -->
<action command="winreg" path="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU"/>
<!-- command="winreg" with the attribute 'name' deletes a
named value under a Windows registry key -->
<action command="winreg" name="CurrentVersion" path="HKCU\Software\BleachBit"/>