Quais caracteres são permitidos e quais devem ser escapados na linha de comando em diferentes sistemas operacionais?
linux
windows
command-line-interface
filesystems
java.is.for.desktop
fonte
fonte
Respostas:
Há uma discussão sobre os caracteres do nome do arquivo no artigo da Wikipedia sobre Nomes de arquivos .
Você pode encontrar este ensaio informativo: Corrigindo nomes de arquivos Unix / Linux / POSIX .
Este artigo compara o OS X e o Windows XP: X vs. XP: caracteres proibidos nos nomes de arquivos (PDF, consulte as páginas aproximadamente 64-66).
Coisas que não devem constar em nomes de arquivos por US $ 1.000
Não sei quais caracteres devem ter escape sem escape, mas no Linux, provavelmente não é uma boa ideia escapar dos caracteres que podem ter um significado especial, como "n" (nova linha), "t" (guia) e outros, mas isso geralmente não é um problema nas operações de arquivo. Talvez você queira dizer "escapou" ao invés de "escapou". Os mais comuns são aqueles que o shell interpretará, como espaço, ">", "<" etc. Veja alguns dos artigos que eu vinculei para uma discussão sobre eles.
fonte
Os únicos caracteres não permitidos em um nome de arquivo em * nix são
NUL
e/
. No Windows, únicaNUL
,:
e\
são realmente não é permitido, mas muitos aplicativos restringir que mais, também impedindo?
,*
,+
, e%
.Em nenhum momento, nenhum caractere em um nome de arquivo precisa ser escapado, exceto conforme necessário, a fim de não ser interpretado pelo shell.
fonte
Se você criar um arquivo no Windows com o Explorer usando um dos seguintes caracteres, ele reclamará que os caracteres não são permitidos:
Uma boa referência está aqui:
Nomeando arquivos, caminhos e espaços para nome
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
A Microsoft declara ainda:
"... nas plataformas de desktop baseadas no Windows, os caracteres de caminho inválidos podem incluir caracteres ASCII / Unicode 1 a 31, além de aspas ("), menores que (<), maiores que (>), pipe (|), backspace (\ b), nulo (\ 0) e tabulação (\ t). "
http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx
fonte
\ / : * ? " < > |
todos eles e criá-los com o mkdir no meu sistema GNU / Linux. Você pode usarmkdir '?'
para criar o?
diretório também. Eu usei o sistema de arquivos ramdisk e XFS para testar isso.No Linux e em outros sistemas compatíveis com POSIX, "/" é reservado, pois é o separador de diretório e "\ 0" (o caractere NULL) designa o final da sequência. Tudo o resto é permitido.
fonte