Ciopfs is a FUSE-based file system that is designed to be case-insensitive in nature. With this software, users can access files without worrying about capitalization errors or other common issues associated with traditional file systems.
To use ciopfs, the first step is to create directories using the following command:
mkdir -p ~/tmp/ciopfs/{.data,case-insensitve}
Next, mount the file system using the command:
ciopfs ~/tmp/ciopfs/.data ~/tmp/ciopfs/case-insensitive
The current directory can be changed using the command:
cd ~/tmp/ciopfs
To create a folder and add a file to it, use the command:
mkdir -p case-insensitive/DeMo/SubFolder
echo demo >> case-insensitive/DEMO/subFolder/MyFile
After running these commands, the file system should look like this:
case-insensitive
|-- DeMo
| `-- SubFolder
| `-- MyFile
.data
|-- demo
| `-- subfolder
| `-- myfile
It's important to note that any file names in the data directory that are not all in lowercase will be ignored. Any changes to the data directory should be done through the mount point to avoid conflicts.
If you would like the file system to mount automatically at boot time, you'll need to add a line like the one below to your /etc/fstab:
/data/projects/ciopfs/data /data/projects/ciopfs/mnt ciopfs allow_other,default_permissions,use_ino,attr_timeout=0 0 0
Runtime requirements for ciopfs include having the underlying file system support extended attributes if you want the file system to preserve case information. You'll also want to mount the underlying filesystem with the user_xattr option to allow non-root users to create extended attributes.
To build ciopfs, you'll need the fuse development files, libattr, and if you plan to use Unicode characters within file names, you'll either need glib or libicu from icu-project.org. If you don't want to use either of those, the file system will fall back to libc's tolower(3) function, which only works case-insensitively for ASCII file names.
The latest ciopfs release includes improved Unicode support based on glib, better error handling in out-of-memory situations, and various code cleanups. For ease of use, there are three makefile targets, including unicode-glib, unicode-icu, and ascii. Running one of these followed by sudo make install should install ciopfs.
Version 0.2: N/A