Como faço para criar um diretório com um espaço à direita?

Como faço para criar um diretório com um espaço à direita?

Estou usando o Windows 7 e preciso, por motivos alheios ao meu controle, criar um diretório terminando em um único espaço. Ele conterá vários arquivos e subdiretórios.

Eu tentei mdand rename, também com caminhos UNC, mas falhou, fornecendo 'sintaxe incorreta' ou, mais frequentemente, simplesmente ignorando o espaço.

Como eu posso fazer isso?

Responder1

Para criar um diretório no Windows com um caractere de espaço à direita, abra um prompt de comando e digite o seguinte:

md "\\?\C:\mydirectory "

O diretório deve ser um diretório absoluto (não relativo) e deve ser prefixado com\\?\

Da mesma forma, você pode excluir o diretório com o comando rd

rd "\\?\C:\mydirectory "

mas o diretório deve estar vazio antes de excluí-lo com este comando.

Responder2

Cygwin pode

$ mkdir 'abcde'

$ mkdir 'abcde '

$ mkdir 'abcde  '

$ ls -l
total 0
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde

ok, claramente funcionou, já que temos 3 diretórios distintos, mas vamos tentar obter algum tipo de prova adicional

$ echo * | xxd
0000000: 6162 6364 6520 6162 6364 6520 2061 6263  abcde abcde  abc
0000010: 6465 2020 0a                             de  .

6162 6364 65 20<---- that's the dir abcde, and echo * put a space in after as there is another item it lists.

6162 6364 6520 20 <-- that's the dir 'abcde ', and echo * displayed it with a space in as there is another item it lists

61 62636465 2020 0a  <-- that's the dir 'abcde  ', and echo * displayed it followed by new line(0a)

Outro

ls oferece algumas opções de formatação como verical e outras, por exemplo, com vírgulas

--format=WORD
       across -x, commas -m, horizontal -x, long -l, single-column  -1,
       verbose -l, vertical -C

--

$ ls -m
abcde, abcde , abcde

Observe o espaço antes da vírgula porque o espaço está no nome do arquivo. O ',' está formatando. Mas ',' mostra que o espaço está no nome do arquivo.

$ ls -m | xxd
0000000: 6162 6364 652c 2061 6263 6465 202c 2061  abcde, abcde , a
0000010: 6263 6465 2020 0a                        bcde  .

--

uma demonstração muito clara sem a necessidade de olhar para nenhum hexadecimal para verificar, é-

$ mkdir 'abcde           '


$ mkdir z


$ ls -m
abcde, abcde , abcde  , abcde           , z


$

Outra maneira, como Mafu menciona no comentário, é o Mingw, que possui um pacote Msys que você pode instalar no gerenciador ming mackage, e o msys instala muitos comandos, por C:\MinGW\msys\1.0\bin>exemplo, mkdir.exe, e também possui um bash.exe.

Responder3

Observe que a criação de um arquivo não suportado pelo Windows pode criar uma situação em que você não conseguirá excluí-lo por meios normais.

Inicialize em uma instalação do Linux ou live CD e execute este comando

mkdir "<mountpoint>/dirname"

Você precisará das aspas.

Veja isto para saber como excluir

informação relacionada