Can I hide files so that they are hidden on both Windows and Linux?

Solution 1:

Add the files you want to hide to a file named .hidden with 1 file per line inside the directory those files are. Somehing like ls {files} >.hidden will work to quickly do this.

  • You can hide files looking from Windows with C:\>attrib +h D:\*.hidden /S (this will hide the .hidden file from the previous method). The directory I assumed D:.

  • You can hide these files from ls on Linux by adding this into your ~./bashrc:

    ls () {
      if [ -f .hidden ]; then
        declare GLOBIGNORE="$GLOBIGNORE:.*:$(tr '\n' ':' < .hidden)"
        ls "$@"
      fi
    }
    

    This will hide the files when using ls and ls only. It also assumes you do not already have an alias for ls. ls -l will still show them but that is just another alias.


The last command I found on superuser. Please upvote that answer ;)