Skip to content

Instantly share code, notes, and snippets.

@mrcomoraes
Last active February 16, 2024 22:55
Show Gist options
  • Save mrcomoraes/c83a2745ef8b73f9530f2ec0433772b7 to your computer and use it in GitHub Desktop.
Save mrcomoraes/c83a2745ef8b73f9530f2ec0433772b7 to your computer and use it in GitHub Desktop.
Clear cache Microsoft Teams on Linux
#!/bin/bash
# This script cleans all cache for Microsoft Teams on Linux
# Tested on Ubuntu-like, Debian by @necrifede, Arch Linux by @lucas-dclrcq and Manjaro with flatpak by @danie1k. Feel free to test/use in other distributions.
# Tested Teams via snap package.
# Tested Teams via flatpak package.
#
# How to use in terminal:
# ./clear_cache_MS_Teams.sh ( deb-stable | deb-insider | snap | flatpak )
# or
# bash clear_cache_MS_Teams.sh ( deb-stable | deb-insider | snap | flatpak )
# Variable process name is defined on case statement.
case $1 in
deb-stable)
export TEAMS_PROCESS_NAME=teams
cd "$HOME"/.config/Microsoft/Microsoft\ Teams || exit 1
;;
deb-insider)
export TEAMS_PROCESS_NAME=teams-insiders
cd "$HOME"/.config/Microsoft/Microsoft\ Teams\ -\ Insiders || exit 1
;;
snap)
export TEAMS_PROCESS_NAME=teams
cd "$HOME"/snap/teams/current/.config/Microsoft/Microsoft\ Teams || exit 1
;;
flatpak)
export TEAMS_PROCESS=teams
cd "$HOME"/.var/app/com.microsoft.Teams/config/Microsoft/Microsoft\ Teams || exit 1
;;
*)
echo "Use $0 ( deb-stable | deb-insider | snap | flatpak ) as parameter."
exit 1
;;
esac
# Test if Microsoft Teams is running
if [ "$(pgrep ${TEAMS_PROCESS_NAME} | wc -l)" -gt 1 ]
then
rm -rf Application\ Cache/Cache/*
rm -rf blob_storage/*
rm -rf Cache/* # Main cache
rm -rf Code\ Cache/js/*
rm -rf databases/*
rm -rf GPUCache/*
rm -rf IndexedDB/*
rm -rf Local\ Storage/*
#rm -rf backgrounds/* # Background function presents on Teams for Windows only.
find ./ -maxdepth 1 -type f -name "*log*" -exec rm {} \;
sleep 5
killall ${TEAMS_PROCESS_NAME}
# After this, MS Teams will open again.
else
echo "Microsoft Teams is not running."
exit
fi
@benfr1
Copy link

benfr1 commented Mar 23, 2022

this works like a charm on ubuntu 20.04. Thanks !!

@kjdavidson
Copy link

This is the best thing I've found on Github all day, thank you very much! Script works perfectly, Teams 1.4.00.26453, Ubuntu 20.04.4 LTS

@danie1k
Copy link

danie1k commented Aug 12, 2022

Works like a charm! But in my case directory is very different:

$HOME/.var/app/com.microsoft.Teams/config/Microsoft/Microsoft\ Teams

OS: Manjaro, Teams installed through flatpak.

@mrcomoraes
Copy link
Author

@danie1k I have not tested on flatpak Teams package. I will update script with flatpak support.

@fremling
Copy link

Hmm... weird, when i fun it in bash i get the following error....

fremling@Sill:~$ ./clear_cache_MS_Teams.sh deb-stable
./clear_cache_MS_Teams.sh: line 31: syntax error near unexpected token )' ./clear_cache_MS_Teams.sh: line 31: *)'

@mrcomoraes
Copy link
Author

mrcomoraes commented Sep 19, 2022

@fremling I have fix a block code that causes errors.

Please, update script and run again.

@gabrielmocanu
Copy link

@mrcomoraes
Any reasons why the process needs to be running?
I am thinking that maybe someone wants to clear the cache without Teams running.

@mrcomoraes
Copy link
Author

@gabrielmocanu
In last test, when Teams aren't running and start clean cache, some data of authentication is cleared too.

Currently I'm not tested. Feel free to validate.

@MarekGajdosik
Copy link

My snap installation has following location - $HOME/snap/teams-for-linux/current/.config/teams-for-linux/

@maksimdzmitryew
Copy link

My Ubuntu 23 snap installation Cache has following location $HOME/snap/teams-for-linux/current/.config/teams-for-linux/Partitions/teams-4-linux/ and the process to be killed is named teams-for-linux

@mrcomoraes
Copy link
Author

@MarekGajdosik and @maksimdzmitryew this "Teams for Linux" snap is a unofficial project that using Electron for deliver MS Teams. I beleive Microsoft removed Teams snap packages. I guess do a upgrade in snap option to support unofficial version.

@SirStifler
Copy link

Here is my first time on GitHub.
However, here is my contribution to this topic.
I have Ubuntu as my SO, and my teams-for-Linux is a fork on the Snap.

I changed lines 24, 25, and 26 to:

snap)
export TEAMS_PROCESS_NAME=teams-for-linux
cd /snap/teams-for-linux || exit 1

Why?
run ps to find your teams-for-linux process and you will see that:

$ ps -ef |grep teams-for-linux
me 324126 323853 0 12:32 ? 00:00:00 /snap/teams-for-linux/523/teams-for-linux --type=utility --utility-sub

So my teams-for-linux is on directory /snap/teams-for-linux
and the TEAMS_PROCESS_NAME is teams-for-linux and not just teams

Cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment