Stile / buone pratiche per i separatori nei nomi di file (o directory) [chiuso]


16

Non sono esattamente sicuro se questa è una domanda "giusta" da pubblicare qui. Probabilmente sto chiedendo di più sulle "opinioni" che sulle risposte categoriche reali (di quelle che funzionano o non funzionano, e basta).

Mi chiedevo quale nome sarebbe stato il separatore più compatibile con Linux (o più specificamente Bash ) e umano allo stesso tempo.

Diciamo che voglio creare una directory che contenga qualcosa correlato a Mr. Foo Bar ( Foo è il nome, Bar è il cognome)

Avere il nome " Foo-Bar/" è molto conveniente. -è un personaggio "normale", non ha bisogno di essere sfuggito, lo mostra chiaramente Fooe Barsono due cose separate ... Bello.

Ora " Foo.Bar" è un po 'più complicato. Qualcuno potrebbe pensare che in Foo.Barrealtà sia un file (a prima vista, specialmente se non hai terminali con la colorazione abilitata) dove " Foo" è il nome del file e " Bar" l'estensione.

Potrei anche usare " Foo Bar", ma poi ho bisogno di sfuggire allo spazio bianco quando voglio accedere alla directory e, se voglio elencare il contenuto della directory padre (dove Foo Barsi trova) e mettere detto elenco in un array bash, il lo spazio bianco causerà problemi (molto). Non carino.

Le parentesi ()causano anche molti problemi. Devono anche essere sfuggiti, quindi causare problemi con i comandi come scp... Non carino.

Quindi ... la domanda (alla fine) è: se hai bisogno di rendere il nome di un file chiaro e significativo a colpo d'occhio, e devi usare i separatori, cosa usi?



Uso spesso trattini, ma dipende da cosa sto facendo. Alcuni potrebbero considerare il caso del cammello appropriato come FooBar.
klapaucius,

Risposte:


14

Risposta breve: "Foo _-_ Bar"

Risposta lunga:

Per rendere le cose più facili da individuare, tendo ad usare una sequenza di caratteri in aree in cui è necessario, l'idea è quella di usare qualcosa che sia facile da individuare in modo da capire che questo è il separatore, forse qualcosa come "_-_" o " ___".

Un esempio pratico in cui lo uso è la mia raccolta di mp3 in cui i nomi dei file contengono il titolo dell'artista e del brano, e talvolta il numero di sequenza. E se usi una sequenza magica per separarli, è facile sia per l'occhio che per gli script. L'esempio mp3 potrebbe assomigliare a questo.

  • 01_Blue_Man_Group _-_ Above.mp3
  • 02_Blue_Man_Group _-_ Time_to_Start.mp3
  • 03_Blue_Man_Group _-_ Sing_Along.mp3

Ora questo può essere tradotto nel tuo esempio se Foo e Bar sono due cose logiche che non dovrebbero mescolarsi e che potrebbero essere Foo _-_ Bar.


2
E in questo modo puoi anche distinguere i nomi che già contengono trattini (o separatori in generale).
Lynxlynxlynx,

1
Anche davvero bello da registrare ex parse! : ^ (. +) _-_ (. +) \. mp3 $
DanDan

Dato che gli umani visualizzerebbero questi file, questa è una buona risposta; In sostanza, lo considero una stringa di separazione; Un separatore unico multi-carattere. In Vagrant, ho notato che usa la stringa VAGRANTSLASHnei nomi dei file in cui si trova la separazione.
ThorSummoner,

9

Con così tanti personaggi che potresti non pensare che dovrebbero essere speciali, in realtà essendo speciali, io uso comunque i caratteri speciali. Questo mi mette anche nelle buone abitudini di usare il completamento bash, dove sfuggirà automaticamente a tutti i caratteri speciali in un nome file. Ma mi mette anche nelle buone abitudini di evadere / citare TUTTO negli script e nelle righe 1 in più parti in bash.

Ad esempio, in un semplice 1-liner:

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

In questo modo, anche se uno dei file ha uno spazio o qualche altro carattere, la doparte del ciclo agirà comunque su di esso e non perderà 2 o più parti del nome del file, causando possibilmente effetti collaterali indesiderati.

Dal momento che non riesco a controllare la denominazione spazio / non-spazio di OGNI file che incontro, e se ci provassi, probabilmente si spezzerebbero alcuni link simbolici da qualche parte, causando conseguenze ancora più indesiderate, mi aspetto solo che tutto il nome file / directoryname possa contenere spazi, e cita / scappa tutte le variabili per compensare.

Quindi, uso solo i caratteri che desidero (spesso spazi) nei nomi dei file.

Uso persino spazi nei nomi dei set di dati ZFS, che devo ammettere che ha causato una discreta quantità di grattacapi tra gli sviluppatori che scrivono il software per il NAS che uso.

Riepilogo: gli spazi non sono un personaggio non valido , quindi non c'è motivo di non usarli.


6

Uso i trattini -, per i motivi sopra citati. Evito i trattini bassi perché richiedono l'uso del tasto Maiusc, quindi impiega almeno il doppio del tempo per scrivere (inoltre, penso che siano brutti)

Sono più propenso a farlo per i nomi dei file di script di ogni altra cosa - immagino sia più importante per me identificare chiaramente a cosa serve uno script. I file di documento sono solo dati inerti, ma gli script sono potenzialmente pericolosi se utilizzati in modo improprio.


5

Uso underscore ( _). Visivamente svaniscono e sono facili da scrivere e non speciali.


4
li trovo più brutti di -, e più difficili da digitare (bisogna usare il tasto Maiusc)
tshepang
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.