Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Usually Linux programs store user's settings in ~/.* directories. But unfortunately some developers (of some applications I need) do not follow this rule and don't start their settings storage folders names with a dot. This results in never-user-used folders cluttering (not the right word perhaps, as there are not many, but they annoy anyway) a home directory. Renaming them is not an option, as the applications won't find them in this case (and will create them again).

Is there a way to hide a folder having no dot starting its name from being displayed in common file system browsers (I actually use Thunar of XFCE, alongside with Midnight Commander and Krusader, but wouldn't mind to know about Nautilus too).

share|improve this question
up vote 18 down vote accepted

Nautilus (Update: This should also work with Thunar now) will hide any file or folder that is listed in the file .hidden located in the same directory.

There are two ways to hide a folder in Nautilus:

Nautilus script

  1. Save the following code in a new file in your home folder. Name it Hide.

    #!/usr/bin/env python
    import commands
    from os.path import join
    files = commands.getoutput("echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
    cwd = commands.getoutput("echo $NAUTILUS_SCRIPT_CURRENT_URI")
    cwd = cwd[7:]
    for f in files.split(" /"):
        f = f.split("/")[-1]
        commands.getoutput("echo "+f+" >> "+join(cwd, ".hidden"))
  2. Run the following command to install the script:

    cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
  3. In Nautilus, select one or more files/folders and right click. Select Hide from the Scripts menu:

    enter image description here

    Reload the current location ( F5 ) and the selected files/folders will be hidden.

Command line

Say you want to hide a folder called "Rick Astley's Greatest Hits", just run the following command:

echo "Rick Astley's Greatest Hits" >> .hidden
share|improve this answer
Exactly a kind of answer I wished to get. But, unfortunately, doesn't work for Thunar. – Ivan Dec 22 '10 at 2:42
@Ivan, Hopefully they will add it eventually, see the bug report I linked to in my answer. – Alvin Row Dec 22 '10 at 2:50
Why double quotes "ObnoxiousFolder"?? – karthick87 Dec 22 '10 at 8:17
FYI, the bug report was closed as WONTFIX (rather rudely IMO, since there was a patch for it already, and the project maintainer basically said "I don't care"). We will need another solution... – waldyrious Jan 7 '13 at 17:46
Recent version of Thunar support this as they use GIO to determine hidden directories, and GIO now implements support for the .hidden file. – Brian Campbell Jul 11 '14 at 14:59

Open synaptic and search for "nautilus-hide" install it. Logout and login. Now right click on any file or folder. You will now see a "Hide" option in the Context Menu.

It will not modify the name but hide the folder.

share|improve this answer

I modified Alvin's good script to be (hopefully) more Pythonic (and potentially faster if many files are added, since .hidden is opened only once):

#!/usr/bin/env python

import os

files = os.environ["NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"].split()
# According to
# the list is newline-delimited, which is split()'s default separator

cwd = os.path.dirname(files[0])
# Assuming all selected files are in the same path, I cannot imagine why not

# Instead of relying on "echo ... >> ..." use Python's IO:
with open(os.path.join(cwd, ".hidden"), "a") as hidden:
        [os.path.basename(f) for f in files.split()]))
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.