Não sei exatamente se essa é uma pergunta "correta" 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 qual separador de nomes seria o mais amigável para Linux (ou mais especificamente, amigável para Bash ) e amigável para humanos ao mesmo tempo.
Digamos que eu queira criar um diretório que contenha algo relacionado ao Sr. Foo Bar ( Foo sendo o primeiro nome, Bar sendo o sobrenome)
Ter o nome " Foo-Bar/
" é muito conveniente. -
é um personagem "regular", não precisa ser escapado, mostra claramente isso Foo
e Bar
são duas coisas separadas ... Legal.
Agora, " Foo.Bar
" é um pouco mais complicado. Alguém pode pensar que Foo.Bar
na verdade é 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 preciso escapar do espaço em branco quando quiser acessar o diretório e, se desejar listar o conteúdo do diretório pai (onde Foo Bar
está localizado) e colocar a lista em um array bash, o espaço em branco vai causar problemas (muito). Não é legal.
Os colchetes ()
também causam muitos problemas. Eles também precisam ser escapados e causar problemas com comandos como scp
... Nada legal.
Então ... a pergunta (finalmente) é: se você precisa deixar claro e significativo o nome de um arquivo à primeira vista e usar separadores, o que você usa?
Respostas:
Resposta curta: "Foo _-_ Bar"
Resposta longa:
Para facilitar a localização, eu costumo usar uma sequência de caracteres em áreas onde isso é necessário, a idéia é usar algo fácil de detectar, para que você entenda que esse é o separador, talvez algo como "_-_" ou " ___ ".
Um exemplo prático de onde eu uso essa é a minha coleção de mp3, onde os nomes de arquivos contêm o artista e o título da música, e às vezes o número da sequência. E se você usar uma sequência mágica para separá-las, é fácil tanto para os olhos quanto para os scripts. O exemplo mp3 pode ser algo parecido com isto.
Agora, isso pode ser traduzido em seu exemplo, se Foo e Bar são duas coisas lógicas que não devem ser misturadas e que poderiam ser Foo _-_ Bar.
fonte
VAGRANTSLASH
nos nomes de arquivos onde está a separação.Com tantos caracteres que você pode achar que não deve ser especial, na verdade, eu uso apenas os caracteres especiais. Isso também me coloca nos bons hábitos de usar a conclusão do bash, onde ele escapará automaticamente de todos os caracteres especiais em um nome de arquivo. Mas também me coloca nos bons hábitos de escapar / citar TUDO em scripts e 1-liners de várias partes no bash.
Por exemplo, em apenas uma linha simples:
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
do
parte do loop ainda atuará nele, e não perderá 2 ou mais partes de nomes de arquivos, possivelmente causando efeitos colaterais indesejados.Como não consigo controlar a nomeação de espaço / não espaço de TODOS os arquivos que encontrar, e se eu tentasse, provavelmente quebraria alguns links simbólicos em algum lugar, causando consequências ainda não intencionais, só espero que todo o nome de arquivo / directoryname possa ter espaços, e apenas cite / escape todas as variáveis para compensar.
Então, apenas uso os caracteres que quero (geralmente espaços) nos nomes de arquivos.
Eu até uso espaços nos nomes de conjuntos de dados do ZFS, o que tenho que admitir que causou uma quantidade considerável de preocupação entre os desenvolvedores que escrevem o software para o NAS que eu uso.
Resumo: os espaços não são um caractere inválido ; portanto, não há motivo para não usá-los.
fonte
Uso traços
-
pelos motivos mencionados acima. Evito sublinhados porque eles exigem o uso da tecla Shift. Portanto, levem pelo menos o dobro do tempo para digitar (também acho feios)Estou mais inclinado a fazer isso pelos nomes de arquivos de script do que qualquer outra coisa - acho que é mais importante para mim identificar claramente para que serve um script. Os arquivos de documentos são apenas dados inertes, mas os scripts são potencialmente perigosos se forem mal utilizados.
fonte
Eu uso sublinhados (
_
). Visualmente eles desaparecem e são fáceis de digitar e não especiais.fonte
-
, e mais difícil de tipo (se tem que usar a tecla shift)