Usando sublinhado nos nomes dos arquivos?

25

Eu uso a linha de comando frequentemente para navegar pelos meus arquivos, então tento não ter espaços nos nomes dos arquivos. Normalmente, usei um sublinhado para conectar palavras, mas foi recentemente sugerido que eu deveria usar um traço. Existem desvantagens no uso de sublinhado nos nomes de arquivo? Devo mudar para um traço? Meu sistema está executando o Xubuntu e quase uso exclusivamente o shell bash.

obrigado

DQdlM
fonte
1
Post relacionado no SO: Por que os sublinhados são melhores que os hífens nos nomes de arquivos? .
precisa saber é o seguinte
1
Se você usar o LaTeX, poderá ser necessário proteger o nome do arquivo entre parênteses {...}. No caso de script automático, você deve considerar. Ele _é usado para criar um índice e deve ser incluído, por exemplo, $...$para evitar erros, mas irá gerar um texto diferente do que você está esperando. No terminal melhorada do gnuplot também ..
Hastur

Respostas:

22

No que diz respeito ao sistema operacional, ambos são tão utilizáveis ​​quanto o outro.

Uma coisa que eu observaria - alguns softwares (como alguns sistemas de reprodução de vídeo - XBMC etc.) substituem automaticamente os sublinhados por espaços ao exibir arquivos para torná-los mais agradáveis.

Por esse motivo, eu ficaria tentado a manter os sublinhados.

Além disso, hífens são usados ​​para alternar para comandos, portanto, pode ser um pouco confuso ter hífens nos nomes de arquivos e nas opções de comando.

Fora isso, é puramente uma escolha pessoal.

Majenko
fonte
1
Uso hinos, mas é porque gosto mais da aparência. Por razões técnicas por trás disso.
beatgammit
Obrigado! Isso é o que eu suspeitava, mas também descobri que seguir minhas suspeitas sozinho pode me causar problemas.
DQdlM
16

O Dash não exige que você pressione SHIFT, o que significa que você digita mais rapidamente. Esse é o único outro benefício que posso pensar acima do que o Sr. Jenkins sugeriu.

Provavelmente a pessoa que está fazendo essa sugestão é um usuário ávido do Vim e deseja fazer tudo com a menor quantidade de movimento do teclado.

LawrenceC
fonte
7
Se fosse esse o caso, eles usaria viem vez - um a menos keystroke;)
Majenko
4
@Matt is alias'ed to any any v;-) #
Daniel Beck
+1 Por esse mesmo motivo, uso sublinhados com nomes com letras maiúsculas, como FOO_BAR(eu não uso caps lock, por isso é bom poder manter pressionada a tecla Shift o tempo todo).
Richard Hansen
@DanielBeck Na verdade, tenho isso em meus aliases festança, bem como gpara git:)
Jan Warchoł
Acredito que o vim considere duas palavras separadas por hífen como uma única palavra, portanto, esse pode ser um motivo para usar sublinhados nos nomes de arquivos como um usuário do vim.
precisa saber é o seguinte
8

Minha recomendação é usar sublinhados em vez de espaços. Sublinhados são geralmente a convenção que as pessoas usam ao substituir espaços, embora os hífens também sejam bons, eu diria. Mas como os hífens podem aparecer de outras maneiras, como palavras hifenizadas, você terá mais sucesso em preservar um valor de nome usando sublinhados. Por exemplo, se você tiver um arquivo chamado "Uma foto tirada em Winston-Salem, NC.jpg" e quiser converter os espaços em sublinhados, poderá preservar o hífen no nome e manter seu significado.

Os espaços causam problemas para as pessoas que desejam usar a linha de comando de maneiras avançadas, como em loops for como este:

for file in *.mp3 ; do mpg321 $file -w - | oggenc -o ${file%%.mp3}.ogg - ; done

Se algum dos arquivos mp3 correspondentes a esse curinga tiver espaços em seu nome, o nome do arquivo será dividido em seções, em vez de no todo. Você pode contornar isso alterando a variável IFS do shell BASH ou usando o comando find, mas é um aborrecimento e muitas pessoas não sabem disso, pois podem causar problemas.

Duvido que esta ou mesmo uma campanha de adesivos para carros impeça as pessoas de colocar espaços nos nomes de arquivos, mas se você quiser ajudar a si mesmo, terá mais poder e obrigado em nome daqueles que se importam.

deltaray
fonte
1
Eu concordo totalmente. Um nome de arquivo bem construído não precisa de espaços.
DQdlM
4
@KennyPeanuts - mas um programa bem escrito não engasga com espaços.
detly
2
@detly - touche '
DQdlM
1
@detly Não, um bom programador entende que deve haver limites no que você pode e deve fazer. Se você diz que não deve engasgar com espaços, então alguém pode entender isso e dizer que não deve engasgar no final da linha, então alguém diria que não deve engasgar /, então alguém pode dizer que não deve engasgar no final do arquivo. Existe um velho ditado "Fórmula para o fracasso: tente agradar a todos".
Deltaray
1
A especificação do sistema de arquivos diz a você o que codificar, nem mais nem menos. No Ext2 / 3/4, por exemplo, um nome de arquivo pode conter qualquer caractere, exceto \0ou \\\`. Coding to anything less than that is broken by design. So, no, it shouldn't choke on spaces, or EOL, or non-ASCII characters, or anything that isn't \ 0` ou `\`. O uso de funções de biblioteca para manipulação de caminhos de arquivos é o caminho a seguir, porque muitas outras pessoas já resolveram esses problemas.
detly
5

A única razão pela qual você deve considerar o uso de hífens em vez de sublinhados é a legibilidade básica. Os sublinhados frequentes tendem a distorcer a leitura, pois altera a linha da sua visão do centro do eixo y para o fundo. Os hífens, no entanto, facilitam os olhos.

No que diz respeito ao sistema operacional, os dois caracteres são igualmente válidos e não precisam ser escapados (quais são os espaços e, portanto, é uma tarefa difícil trabalhar com eles).

Varun Madiath
fonte
2
Acho que a razão básica da legibilidade é puramente subjetiva. Acho sublinhados mais fáceis de ler, porque eu posso ignorá-los visualmente - não lê-los - enquanto traços eu realmente tenho que lê-los.
goliatone
3

Pessoalmente, prefiro hífens ao invés de sublinhado, porque você não precisa pressionar a tecla Shift para eles. Porém, uma coisa a lembrar é que, se você estiver executando principalmente a codificação python - e sua árvore de códigos tiver arquivos / diretórios com hífen e pretender usá-los como módulos (faça um nome de arquivo importado no código), isso causará erros como os módulos python não podem ter hífen neles. Obviamente, existem maneiras indiretas de importar módulos com hífen, mas eu gostaria de sublinhar, pois também segue as diretrizes do PEP-8.

Portanto, para a maioria dos meus bin / programas ou pseudônimos, uso hífens, mas quando se trata de escrever programas / módulos python - uso sublinhados.

Saurabh Hirani
fonte
2

Existem boas razões para usar hífens em qualquer contexto baseado na Web que mapeie para um sistema de arquivos Unix.

URL               What search indexes see
foo-baz-bang      foo baz bang
foo_baz_bang      foobazbang

Como desenvolvedor da Web, isso me levou a ficar com hífens ao separar palavras.

remer rico
fonte
1
O contexto mencionado acima provavelmente está relacionado a - entre outras coisas - uma postagem de blog de Matt Cutts em 2005, envolvendo a preferência algorítmica do Google por hífens vs. sublinhados como um melhor indicador de um espaço reservado em espaço em branco.
jmmygoggle 11/01