No description
Find a file
Thomas Lindop 18f16bae58 >> complete documentation
> reorder list of flags to be consistent
2025-05-28 12:16:43 +01:00
.gitignore >> First commit 2025-05-08 18:54:23 +01:00
go.mod >> First commit 2025-05-08 18:54:23 +01:00
iaq.md >> move notes from TODO into the man page and "FAQ" 2025-05-24 09:49:31 +01:00
LICENSE >> First commit 2025-05-08 18:54:23 +01:00
main.go >> complete documentation 2025-05-28 12:16:43 +01:00
Makefile >> remove more complex whitespace behaviour form tests 2025-05-15 12:16:10 +01:00
man.md >> complete documentation 2025-05-28 12:16:43 +01:00
owl_test.go >> add script for manual testing 2025-05-18 00:19:46 +01:00
README.md >> update documentation 2025-05-27 23:21:48 +01:00
test.bash >> add examples of symbolic links to tests 2025-05-28 11:16:30 +01:00

Owl

The moon is bright. The owls are ready for the hunt.

Owl is a command line tool for removing unwanted characters from file names. Say you want to backup some of your files on to a memory stick. Most likely that memory stick uses FAT32 or exFAT as its file system, as this is the most compatible with the most operating systems. But if any of your files have special characters like : or ? in their names, this won't work 1.

Alternatively, say you have a file that needs to be on an older computer that will not render some characters (like multi-character emoji) correctly (or you just don't like having emoji in a file name).

And what if you have either of these problems with potentially many files in a directory? Renaming every file would be tedious, and even the best bulk renaming tool will struggle to deal with all the possible invalid characters, at least if you don't want to manually write a very complex regular expression every time you encounter this problem.

Owl will hunt down any files with these issues and rename them as appropriate - see man.md for usage and other important information.

See Infrequently Asked Questions for unimportant information.


  1. A Stack Exchange question which outlines some of the problems in this area: https://unix.stackexchange.com/questions/779052/removing-hidden-control-characters-in-filenames
  2. Another, similar stack exchange question: https://stackoverflow.com/questions/1976007/what-characters-are-forbidden-in-windows-and-linux-directory-names
  3. FAT Specification: https://learn.microsoft.com/en-gb/windows/win32/fileio/exfat-specification (see section 7.7.3)
  4. More file system specifications: https://learn.microsoft.com/en-us/troubleshoot/windows-client/backup-and-storage/fat-hpfs-and-ntfs-file-systems?source=recommendations
  5. mmv: https://github.com/rrthomas/mmv
  6. PathShortener: https://github.com/ElectricRCAircraftGuy/eRCaGuy_PathShortener
  7. fuseblk-filename-fixer: https://github.com/DDR0/fuseblk-filename-fixer
  8. POSIX Portable Filename Set (see section 3.265): https://pubs.opengroup.org/onlinepubs/9799919799/