Bom estilo / práticas para separadores em nomes de arquivos (ou diretórios) [closed]

16

Não sei exatamente se essa é uma pergunta "certa" para postar aqui. Provavelmente estou perguntando mais sobre "opiniões" do que respostas categóricas reais (daquelas que funcionam ou não, e é isso).

Eu queria saber quais separadores de nomes seriam os mais linux amigáveis (ou mais especificamente, Bash amigável ) e humanos amigáveis ao mesmo tempo.

Digamos que eu queira criar um diretório que contenha algo relacionado a Mr. Foo Bar ( Foo sendo o primeiro nome, Bar sendo o sobrenome)

Ter o nome " Foo-Bar/ " é muito conveniente. - é um caractere "regular", não precisa ser ignorado, isso mostra claramente que Foo e Bar são duas coisas separadas ... Legal.

Agora, " Foo.Bar " é um pouco mais complicado. Alguém pode pensar que Foo.Bar é realmente um arquivo (à primeira vista, especialmente se você não tiver terminais com cores ativadas) onde " Foo " é o nome do arquivo e " Bar " a extensão.

Eu também poderia usar " Foo Bar ", mas eu preciso escapar do espaço em branco quando eu quiser acessar o diretório e, se eu quiser listar o conteúdo do diretório pai (onde Foo Bar está localizado) e colocar a lista em uma matriz bash, o espaço em branco causará problemas (muito). Não é legal.

Os colchetes () também causam muitos problemas. Eles também precisam ser escapados, então causar problemas com os comandos como scp ... Não é bom.

Então ... a pergunta (finalmente) é: Se você precisa tornar o nome de um arquivo claro e significativo em um piscar de olhos, e você precisa usar separadores, o que você usa?

    
por BorrajaX 28.07.2012 / 00:49

4 respostas

14

Resposta curta: "Foo _-_ Bar"

Resposta longa:

Para tornar as coisas mais fáceis de detectar, costumo usar uma sequência de caracteres em áreas onde isso é necessário, a idéia é usar algo que seja fácil de detectar, então você percebe que esse é o separador, talvez algo como "_-_ "ou"

por 28.07.2012 / 08:56
9

Com tantos caracteres que você pode achar que não devem ser especiais, na verdade, sendo especiais, eu só uso os caracteres especiais de qualquer maneira. Isso também me coloca nos bons hábitos de usar o bash completion, onde ele irá auto-escapar todos os caracteres especiais em um nome de arquivo. Mas também me coloca nos bons hábitos de escapar / citando TUDO em scripts e multi-part 1-liners no bash.

Por exemplo, em apenas um simples liner:

for file in *.txt; do something.sh "$file"; done

Dessa forma, mesmo que um dos arquivos tenha um espaço, ou algum outro caractere, a parte do do loop ainda atuará nele, e não perderá 2 ou mais partes de nome de arquivo, possivelmente causando efeitos colaterais não intencionais.

Como não consigo controlar a nomenclatura de espaço / não-espaço de CADA arquivo que encontro, e se eu tentei, provavelmente quebraria alguns symlinks em algum lugar, causando ainda mais consequências não intencionais, só espero que todo nome de arquivo / diretório possa ter espaços nela, e apenas cite / escape todas as variáveis para compensar.

Então, eu uso apenas os caracteres que eu quero (geralmente espaços) em nomes de arquivos.

Eu até uso espaços em nomes de conjuntos de dados ZFS, o que eu tenho que admitir que causou uma boa quantidade de arranhões entre os desenvolvedores que escrevem o software para o NAS que eu uso.

Resumindo: os espaços não são um caractere inválido , portanto, não há motivo não para usá-los.

    
por 28.07.2012 / 15:29
6

Eu uso traços - , pelas razões que você mencionou acima. Evito sublinhados porque eles exigem o uso da tecla Shift, portanto, tome pelo menos o dobro do tempo para digitar (também, acho que eles são feios)

Estou mais inclinado a fazer isso por nomes de arquivo de script do que qualquer outra coisa - eu acho que é mais importante para mim identificar claramente o que é um script. Os arquivos de documentos são apenas dados inertes, mas os scripts são potencialmente perigosos se usados incorretamente.

    
por 28.07.2012 / 03:57
5

Eu uso sublinhados ( _ ). Visualmente eles desaparecem e são fáceis de digitar e não especiais.

    
por 28.07.2012 / 01:34