How to remove the directory named with tilde in it (Linux, Ubuntu, Docker)

By mistake, I have created a directory with tilde its name, (the ~ character). Now, how to correct it?

Here are the practical experiments and results.

Listing the directory with tilde in its name

codetryout:~$ ls -l
total 4
drwx---r-x 2 codetryout codetryout  219 Sep 25 00:03  mysql
drwx---r-x 9 codetryout codetryout  155 Sep 22 14:22  www
drwxr-xr-x 8 codetryout codetryout  134 Sep 22 08:10  testing
drwxr-xr-x 3 root       root       4096 Sep 25 00:02  logs
drwxr-xr-x 3 codetryout codetryout   21 Sep 23 23:25 '~~'

rm command man page reference

The rm command man page says, the filename with some special characters such as -, can be removed by using — option

To remove a file whose name starts with a '-', 
for example '-foo', use one of these commands:
		rm -- -foo
		rm ./-foo

Let’s try that,

codetryout:~$ rm -v -- '~~'/
rm: cannot remove '~~/': Is a directory

rm did not remove since in our case it is a directory, not a file.

Solution for removing the directories with tilde in its name

Let us specify this is a directory and remove it forcefully by adding r and f options.

codetryout:~$ rm -vrf -- '~~'/
removed directory '~~/mysql-bkp'
removed directory '~~/'
codetryout:~$

Finally, the command removed the directory and its subdirectories recursively.

Syntax to note here:

 rm -vrf -- "FOLDER-NAME-WITH-TILDE"

Verifying the results after deletion.

codetryout:~$ ls -l
total 4
drwx---r-x 2 codetryout codetryout  219 Sep 25 00:03  mysql
drwx---r-x 9 codetryout codetryout  155 Sep 22 14:22  www
drwxr-xr-x 8 codetryout codetryout  134 Sep 22 08:10  testing
drwxr-xr-x 3 root       root       4096 Sep 25 00:02  logs
codetryout:~$

Important notes:

This is tested in Ubuntu server, should work on any bash terminal (Linux, CentOS, RedHat, Ubuntu, and Docker Linux containers)

Warning: rm -rf command will permanently delete the file or directory, make sure that you are deleting the intended file or directory