relan / exfat

Free exFAT file system implementation
GNU General Public License v2.0
793 stars 181 forks source link

Support shortname mount option like vfat #39

Open jflemer opened 8 years ago

jflemer commented 8 years ago

The linux vfat filesystem supports a mount option -o shortname=mode. From mount(8):

   shortname=mode
          Defines the behavior for  creation  and  display  of  filenames
          which  fit  into  8.3  characters.   If  a long name for a file
          exists, it will always be the preferred one for display.  There
          are four modes:

          lower  Force the short name to lower case upon display; store a
                 long name when the short name is not all upper case.

          win95  Force the short name to upper case upon display; store a
                 long name when the short name is not all upper case.

          winnt  Display the short name as is; store a long name when the
                 short name is not all lower case or all upper case.

          mixed  Display the short name as is; store a long name when the
                 short  name  is  not  all  upper case.  This mode is the
                 default since Linux 2.6.32.

It would be nice to support at least the lower option.

relan commented 8 years ago

exFAT does not support short names by design. What problem are you trying to solve?

jflemer commented 8 years ago

When I use exFAT-fuse to mount exFAT/SDXC cards from my canon cameras, I see all uppercase file names like DCIM/123_4567/IMG_1234.JPG. On FAT32/SD cards, using the vfat filesystem, (short) file names would be uppercase by default too, but the previously mentioned mount option could change that (mount -oshortname=lower ...).

I would like to mount exFAT/SDXC cards from cameras such that files show up as dcim/123_4567/img_1234.jpg (all lowercase).

relan commented 8 years ago

In FAT there is no information about filename letters case (unless LFN feature is used). That's why vfat driver has shortname option. Note that this option does not affect LFNs.

exFAT preserves filenames case. If you see them in the upper case—they were meant to be in the upper case. I think filename case translation is out of scope of exFAT driver.

If you ultimately need lower case filenames you can create a simple FUSE filesystem that would do this translation. Just a random idea. :)

marcosfrm commented 7 years ago

What about showexec? I find it very handy to avoid unwanted exec permissions.

https://www.mjmwired.net/kernel/Documentation/filesystems/vfat.txt#125

relan commented 7 years ago

What about showexec?

Sounds like a good idea. Will do that for the next version.