No estoy exactamente seguro de si esta es una pregunta "correcta" para publicar aquí. Probablemente estoy preguntando más sobre "opiniones" que respuestas categóricas reales (de aquellas que funcionan o no, y eso es todo).
Me preguntaba qué separadores de nombres serían los más amigables con Linux (o más específicamente, Bash ) y humanos al mismo tiempo.
Digamos que quiero crear un directorio que contenga algo relacionado con el Sr. Foo Bar ( Foo es el nombre, Bar es el apellido)
Tener el nombre " Foo-Bar/
" es muy conveniente. -
es un personaje "normal", no necesita ser escapado, lo demuestra claramente Foo
y Bar
son dos cosas separadas ... Agradable.
Ahora, " Foo.Bar
" es un poco más complicado. Alguien puede pensar que en Foo.Bar
realidad es un archivo (a primera vista, especialmente si no tiene terminales con coloración habilitada) donde " Foo
" es el nombre de archivo y " Bar
" la extensión.
También podría usar " Foo Bar
", pero luego necesito escapar del espacio en blanco cuando quiero acceder al directorio y, si quiero enumerar el contenido del directorio principal (donde Foo Bar
se encuentra) y poner dicha lista en una matriz bash, el el espacio en blanco va a causar problemas (mucho). No está bien.
Los corchetes ()
también causan muchos problemas. También necesitan escapar, para causar problemas con los comandos como scp
... No es agradable.
Entonces ... la pregunta (por fin) es: si necesita hacer que el nombre de un archivo sea claro y significativo a simple vista, y necesita usar separadores, ¿qué usa?
Respuestas:
Respuesta corta: "Foo _-_ Bar"
Respuesta larga:
Para hacer que las cosas sean fáciles de detectar, tiendo a usar una secuencia de caracteres en las áreas donde esto es necesario, la idea es usar algo que sea fácil de detectar para que sepas que este es el separador, tal vez algo como "_-_" o " ___ ".
Un ejemplo práctico donde uso esto es mi colección de mp3 donde los nombres de los archivos contienen el título del artista y la canción, y a veces el número de secuencia. Y si usa una secuencia mágica para separarlos, es fácil tanto para el ojo como para los guiones. El ejemplo mp3 podría verse así.
Ahora esto se puede traducir a su ejemplo si Foo y Bar son dos cosas lógicas que no deberían mezclarse, y que podrían ser Foo _-_ Bar.
fuente
VAGRANTSLASH
en los nombres de archivo donde está la separación.Con tantos caracteres que quizás no creas que deberían ser especiales, de hecho siendo especiales, solo uso los caracteres especiales de todos modos. Esto también me pone en los buenos hábitos de usar bash complete, donde escapará automáticamente a todos los caracteres especiales en un nombre de archivo. Pero también me pone en los buenos hábitos de escapar / citar TODO en scripts y multi-part 1-liners en bash.
Por ejemplo, en un simple 1-liner:
for file in *.txt; do something.sh "$file"; done
De esa manera, incluso si uno de los archivos tiene un espacio, o algún otro carácter, la
do
parte del bucle seguirá actuando sobre él, y no perderá en 2 o más partes de nombre de archivo, lo que posiblemente cause efectos secundarios no deseados.Dado que no puedo controlar el nombre de espacio / no espacio de CADA archivo que encuentro, y si lo intentara, probablemente rompería algunos enlaces simbólicos en alguna parte, causando aún más consecuencias no deseadas, solo espero que todo nombre de archivo / nombre de directorio pueda tener espacios en él, y solo cita / escapa todas las variables para compensar.
Entonces, solo uso los caracteres que quiero (a menudo espacios) en los nombres de archivo.
Incluso uso espacios en los nombres de los conjuntos de datos ZFS, lo que debo admitir que ha causado una gran cantidad de rasguños entre los desarrolladores que escriben el software para el NAS que uso.
Resumen: los espacios no son un carácter no válido , por lo que no hay razón para no usarlos.
fuente
Yo uso guiones
-
, por las razones que mencionas anteriormente. Evito los guiones bajos porque requieren el uso de la tecla Mayús, así que toma al menos el doble de tiempo para escribir (también, creo que son feos)Estoy más inclinado a hacer esto para los nombres de archivo de script que cualquier otra cosa; creo que es más importante para mí identificar claramente para qué sirve un script. Los archivos de documentos son solo datos inertes, pero los scripts son potencialmente peligrosos si se usan incorrectamente.
fuente
Yo uso guiones bajos (
_
). Visualmente se desvanecen, son fáciles de escribir y no especiales.fuente
-
, y más difícil de tipo (uno tiene que usar tecla de mayúsculas)