Não sei qual o tamanho máximo do nome do arquivo (para o ext4), mas é mais dependente do sistema de arquivos do que o próprio Linux. No FAT32, acho que é 255 caracteres. Você provavelmente não precisa realmente de um nome de arquivo por muito tempo.
Quanto aos caracteres permitidos, qualquer valor de byte é permitido no sistema de arquivos ext4, exceto o byte NULL (e /
, pois esse é o separador de diretório 1 ). No entanto, você deve limitar seus nomes de arquivo ao conjunto de caracteres UTF-8, para a maior variedade de compatibilidade entre aplicativos e dispositivos.
1. Como indicado no manual da glibc , "qualquer caractere, exceto o caractere nulo, é permitido em uma string de nome de arquivo", mas um /
na string de nome de arquivo separa o nome de um arquivo ou pasta daquele de seu pai.