CONVMVFS(1)

✨ convmvfs β€” the mirror-magic filesystem glow-up ✨

okay so bestie, we're in General Commands Manual territory, section 1, and the star of the show is convmvfs. she mirrors a whole filesystem tree from one charset to another, and honestly? she eats. πŸ’…


🌸 NAME 🌸

convmvfs β€” utility that mirrors a whole filesystem tree from one charset to another. no cap, that's the whole job description.


πŸ¦‹ SYNOPSIS πŸ¦‹

convmvfs mountpoint [ options ]

like… you give her a mountpoint, you give her options, she does the rest. main character behavior tbh. ✨


πŸ’– DESCRIPTION πŸ’–

this manual page documents briefly the convmvfs command. brief but iconic, we love a concise queen. πŸŽ€

convmvfs is a FUSE (File System in Userspace) utility that transparently mirrors a filesystem tree, converting the filenames from one charset to another on the fly. the way it does this is literally so smooth you won't even notice. 🌈

so here's the tea πŸ“ β€” only the names of files and directories are converted. the file content remains intact. untouched. pristine. we do not touch the content, we simply do not. πŸ’€

the mirrored tree gets mounted at the given mountpoint. that's it, that's the vibe.


✨ OPTIONS ✨

🫢 General options 🫢

  • -o opt[,opt...] β€” mount options. yep, comma-separated, more on that below bestie ⬇️
  • -h, --help β€” print help πŸ“–
  • -V, --version β€” print version, so you know exactly which girl you're dealing with πŸ‘‘
  • -h, --help β€” show summary of options (yes she's listed twice, the original said it twice, we don't ask questions, we just respect the lore πŸ™ˆ)

🧚 FUSE options 🧚

  • -d, -o debug β€” enable debug output (implies -f). she's telling you EVERYTHING, lowkey oversharing but we love her for it πŸ’œ
  • -f β€” foreground operation. she stays right there in your terminal, no ghosting 🫢
  • -s β€” disable multi-threaded operation. single-threaded, single-minded, focused πŸ’…
  • -o β€” Mount options are specified with a -o flag followed by a comma separated list of options. The following options are recognized:
    • allow_other β€” allow access to other users πŸ‘₯
    • allow_root β€” allow access to root πŸ‘‘
    • nonempty β€” allow mounts over non-empty file/dir
    • default_permissions β€” enable permission checking by kernel
    • fsname=NAME β€” set filesystem name 🏷️
    • large_read β€” issue large read requests (2.4 only)
    • max_read=N β€” set maximum size of read requests
    • hard_remove β€” immediate removal (don't hide files) πŸ’€
    • use_ino β€” let filesystem set inode numbers
    • readdir_ino β€” try to fill in d_ino in readdir
    • direct_io β€” use direct I/O
    • kernel_cache β€” cache files in kernel
    • umask=M β€” set file permissions (octal)
    • uid=N β€” set file owner
    • gid=N β€” set file group
    • entry_timeout=T β€” cache timeout for names (1.0s)
    • negative_timeout=T β€” cache timeout for deleted names (0.0s)
    • attr_timeout=T β€” cache timeout for attributes (1.0s)
    • srcdir=PATH β€” which directory to convert πŸ“‚
    • icharset=CHARSET β€” charset used in srcdir
    • ocharset=CHARSET β€” charset used in mounted filesystem

😭 NOTES 😭

if you use a normal user account to mount the file system, be sure to have r/w permissions to /dev/fuse. yes, really. check it. don't come crying to me. πŸ₯²

use iconv --list to see which charsets are supported β€” go window shopping for your fave charset bestie, there's so many πŸ›οΈ

to allow other users to access the mount point, use the allow_other option. sharing is caring 🫢

IMPORTANT: if the mount point and srcdir point at the same directory, readdir call will enter a dead loop. BE SURE TO AVOID THIS SITUATION! πŸ’€πŸ’€πŸ’€ this is not a drill, this is not a vibe, this is an infinite loop and she will NOT stop. avoid it. periodt.

🌈 SAMPLE USE 🌈

to mount:

$ convmvfs /ftp/pub_gbk -o srcdir=/ftp/pub,icharset=utf8,ocharset=gbk

to unmount:

$ fusermount -u /ftp/pub_gbk

see? easy. slay. πŸ’…


πŸŽ€ SEE ALSO πŸŽ€

fusermount(1), mount(8)

go read those too, they're the supporting cast and they understood the assignment. ⭐


πŸ’œ AUTHOR πŸ’œ

convmvfs was written by Z.C. Miao <hellwolf.misty@gmail.com>.

This manual page was written by Stanislav Maslovski <stanislav.maslovski@gmail.com>, for the Debian project (but may be used by others).


and that's the whole page bestie, delivered to you on October 3, 2007 in the classic CONVMVFS(1) flavour of the General Commands Manual β€” go forth and convert those filenames, you've got this πŸ’–βœ¨πŸ¦‹