15

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).

3 Answers 3

20

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
6
  • 2
    Exactly a kind of answer I wished to get. But, unfortunately, doesn't work for Thunar.
    – Ivan
    Dec 22, 2010 at 2:42
  • @Ivan, Hopefully they will add it eventually, see the bug report I linked to in my answer.
    – Isaiah
    Dec 22, 2010 at 2:50
  • Why double quotes "ObnoxiousFolder"??
    – karthick87
    Dec 22, 2010 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, 2013 at 17:46
  • 1
    Recent version of Thunar support this as they use GIO to determine hidden directories, and GIO now implements support for the .hidden file. Jul 11, 2014 at 14:59
2

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.

0

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 https://help.ubuntu.com/community/NautilusScriptsHowto
# the list is newline-delimited, which is split()'s default separator

# No need for NAUTILUS_SCRIPT_CURRENT_URI
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:
    hidden.write("\n".join(
        [os.path.basename(f) for f in files.split()]))

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .