Mir wrote:I figured it out after some research. FAT partitions don't allow certain characters. I was copying to a FAT32 partition.
Caja wouldn't let me paste to Ext4 partitions without root access, and doing a paste from root with Caja often corresponded with a memory leak in either the plugin manager in Firefox or mate-system-daemon. Caja also would use 4 gigabytes of RAM and 100% of one core of my CPU if I pasted anything greater than about 8 gigabytes to any external hard drive. The solution for me was to switch to a different file manager and use an EXT4 partition (NTSF will fail if you remove it without first ejecting it). This was problematic because gnome-disk-utility wouldn't allow me to modify partitions on any of my external hard drives, so I had to dig up an old EXT4 hard drive, disassemble a case for it, swap it out with the existing external hard drive, and reassemble the case.
As it stands I'll reinstall my OS or a different one, to get away from gnome, mate, and systemd. I never had any of these problems until systemd made it into debian testing. Bye, Mint!
What you are trying to do can be done with a program written in C. trying to do it with scripting will work, but it will require multipasses of the bash translate command.
As a simple idea, you build a tale in C of 256 chars, using one-to-one. Then you choose to replace the characters you want by replacing that table entry with the new one.
A simple pass over the filename through the table will yield the translated name. Use the translated name as output.
Let me know what you decide to do or if you need C help.