Don’t Display Tilda In Bash

Shell Programming


So, have you ever encountered a situation in a Bash script where you absolutely don’t want the tilda (~) character to be expanded into the home directory path? I’ve been there, and let me tell you – it can be a real pain! In this article, I’ll delve into the intricacies of preventing the tilda from being expanded in Bash and share my personal insights on this topic.

Understanding the Tilda (~) Expansion

First off, let’s take a moment to understand what the tilda (~) character does in Bash. By default, when you use the tilda in a path, Bash expands it to the current user’s home directory. While this behavior is often convenient, there are situations where it’s not desirable – particularly when you want to treat the tilda as a literal character and not have it replaced with a directory path.

Disabling Tilda Expansion in Bash

Now, let’s talk about how we can prevent the tilda from being expanded in Bash. One way to achieve this is by enclosing the path containing the tilda in single quotes. For example, instead of writing echo ~/Documents, you can write echo '~/Documents'. By using single quotes, you tell Bash to interpret the tilda as a literal character.

Another approach is to escape the tilda with a backslash. For instance, you can write echo \~/Documents to keep the tilda from being expanded. This method is particularly useful when you need to use the tilda within a string or a command argument.

Practical Use Cases

In my experience, I’ve encountered scenarios where I’m working with file paths that contain the tilda character, but I don’t want it to be expanded. For instance, let’s say I want to create a script that operates on a file with a name containing the tilda. By using the techniques mentioned above, I can ensure that the tilda is treated as a literal character and not as part of a directory path.


In conclusion, dealing with tilda expansion in Bash can be a tricky endeavor, but with the right knowledge and techniques, it’s definitely manageable. By using single quotes or backslashes, you can prevent the tilda from being expanded and maintain control over how it’s interpreted in your scripts. Remember, understanding these nuances can save you from unexpected behavior and make your Bash scripting experience smoother.