Małe litery w nazwach plików systemu Linux

11

Ponieważ uważam, że UpperCase są naprawdę czytelne dla separacji słów od pierwszej litery w długich nazwach złożonych, mam tendencję do nadawania niektórych nazw plików Linux-a niektórym UpperCase. Głównie pliki wykonywalne, a także niektóre katalogi.

Ale minęło kilka tygodni, gdy zauważyłem, że ogromna większość wszystkich nazw plików w mojej dystrybucji linuksa jest pisana małymi literami ...

Więc zrobiłem trochę googlingu chwilę temu i znalazłem ten artykuł: Linux File Names , który mówi, że zawsze należy używać małych liter w świecie unixowym,

... Najlepiej zawsze używać małych liter w Linuksie, chyba że masz dobry powód, aby używać wielkich lub małych liter. Większość ludzi uniksowych używa małych liter prawie wyłącznie, ale oprócz tego punktu „kulturowego” istnieje jeszcze jeden dobry powód, aby używać małych liter. Jeśli udostępniasz lub uzyskujesz dostęp do systemu plików DOS w systemie Linux, DOS nie będzie mógł zobaczyć plików, które mają nazwy wielkich lub małych liter ...

Czy to naprawdę tak jest?

Stephane Rolland
źródło
2
tak, tak naprawdę jest. Wydaje się, że ludzie uniksowi nie mogą znaleźć klawisza Shift. ale tak naprawdę nie ma usprawiedliwienia dla wspierania reguł przeciwko mieszanym przypadkom. to tylko rant.
Ross Patterson

Odpowiedzi:

20

Programiści brzydzą się używaniem klawisza Shift (a Caps Lock to coś, z czego wielu próbuje się pozbyć ). Kontynuując od miejsca, które mówi „zawsze używaj małych liter” ...

Najlepiej zawsze używać małych liter w Linuksie, chyba że istnieje dobry powód, aby używać wielkich lub małych liter. Większość ludzi uniksowych używa małych liter prawie wyłącznie, ale oprócz tego punktu „kulturowego” istnieje jeszcze jeden dobry powód, aby używać małych liter. Jeśli udostępniasz lub uzyskujesz dostęp do systemu plików DOS w systemie Linux, DOS nie będzie mógł zobaczyć plików, które mają nazwy wielkich i małych liter.

Głównym powodem tego jest to, że jeśli przenosisz dwa pliki, które są oddzielone tylko przez wielkość liter, do systemu bez rozróżniania wielkości liter, na nieczułym komputerze mogą się zdarzyć zamieszanie.

Pliki na twoim komputerze z linuksem są twoje. Rób z nimi, jak chcesz, w sposób, który ma dla ciebie sens.

Przekonałem się, że konwencja używania wielkich liter w pierwszej literze katalogu ułatwia mi nawigację po nich. Wykonanie „ls” w katalogu automatycznie umieszcza wszystkie katalogi na górze listy i oddziela katalogi od plików, ułatwiając zarówno przeglądanie, jak i nawigację. Ale to znowu dla mnie - rób to, co dla ciebie działa .


źródło
1
DOS? Naprawdę? To już nie ma znaczenia.
Maximus Minimus
3
@ mh01 Kiedyś uważałem, że EBCDIC jest nieistotny, dopóki w zeszłym roku nie miałem do czynienia z systemem, który wysłał ten zestaw znaków, a nie ascii. Widziałem już systemy OpenVMS (najnowsze wydanie było dopiero 2 lata temu, nieźle jak na coś, co miało pierwsze wydanie 35 lat temu) ... a jego system plików wciąż nie rozróżnia wielkości liter. Najwyraźniej komputery Mac mają wielkość liter i wielkość liter (a Steam i Photoshop nie lubią systemów plików z rozróżnianiem wielkości liter na komputerze Mac ). Rozróżnianie wielkości liter jest żywe.
3
Nie wspominając już o ogromnej większości komputerów stacjonarnych z systemem plików Windows bez rozróżniania wielkości liter.
Kilian Foth
Dobra uwaga na temat rozróżniania wielkości liter i zachowania wielkości liter, ale jeśli masz różne pliki, które różnią się tylko wielkością nazwy pliku, pomyślałem, że istnieją inne problemy niż przeniesienie do systemów plików bez rozróżniania wielkości liter, które mogą powodować zamieszanie. ..
CVn
9

Zastosowania „zorientowane na konsumenta” (cokolwiek to może znaczyć) używają Case Case, nawet w świecie Uniksa. Zdarza się to częściej, gdy w danej organizacji są ludzie, których całym zadaniem jest myślenie o doświadczeniu użytkowników.

Na przykład, mój pulpit Ubuntu ma folderów w katalogu domowym o nazwie Downloads, Pictures, Documentsitp samo dotyczy mojego laptopa OSX (tak, to się liczy, jest to BSD). Chociaż warto zauważyć, że Apple posuwa się do nazwania własnych katalogów systemowych za pomocą titlecase (np. /Library/Audio/Apple Loops/), Zachowując jednocześnie „klasyczny” podstawowy system plików (np /usr/libexec/dtrace/.). Ale nie mam dystrybucji Linuksa, o której wiem, że używa titlecase gdziekolwiek poza katalogiem domowym użytkownika.

Przypuszczalnie różnica polega na tym, że katalogi, na których oglądanie oczekują ludzie, są tytułowe, a miejsca, w których ludzie nie powinni eksplorować, są małe. Podobnym rozróżnieniem wydaje się być gra z Ubuntu; tylko katalogi, które mają pojawiać się jako lista folderów w oknie Nautilusa, są tytułami, podczas gdy nazwy folderów, które powinny zostać wpisane (nie przeglądane), są niższe.

I to jest sedno tego; tytul lub wielka litera jest trudniejszy do wpisania. Ale tytuł wygląda lepiej na liście lub zestawie folderów sąsiadujących. Wybierz odpowiednio. Ludzie Linuksa często zajmują się wierszem poleceń, nawet w przypadku przyziemnych zadań, więc małe litery mają większy sens.

tylerl
źródło
Dobra uwaga, ale chciałbym dodać, że spacje lub podkreślenia są łatwiejsze do odczytania niż przypadek wielbłąda lub Pascala
jk.
4

O argumencie DOS: system plików DOS / Windows nie zobaczyć pliki niezależnie od przypadku i mogą obsługiwać je grzywny. Bardzo stare systemy plików DOS nie obsługują niczego poza nazwami plików 8.3, ale nawet FAT32 może obsługiwać długie nazwy plików. Jedynym problemem jest to, że chociaż systemy plików DOS / Windows zachowują wielkość liter (w większości przypadków; niektóre smaki odrzucają wielkość liter dla nazw plików pasujących do formatu 8.3), nie rozróżniają wielkości liter, jeśli chodzi o porównywanie nazw plików; Windows uważa, że ​​„foobar”, „Foobar”, „FOOBAR” i „fOObAr” to ta sama nazwa pliku.

To powiedziawszy, jest to głównie kwestia kultury, ale ma to pewne podłoże. Powodem, dla którego ta konkretna konwencja utknęła w świecie UNIX jest użyteczność . Są tutaj dwa główne argumenty:

  • Oddzielanie słów za pomocą znaków nieliterowych jest lepsze dla wygody czytania niż używanie obudowy do oznaczania granic słów. IfYouDonTBelieveMe, CompareThisSentenceWithThePreviousOneAndTellMeWhichIsEasierToRead. (I oczywiście nowe rozdziały na wszystkie najgorsze).
  • Małe litery mają bardziej zróżnicowane kształty niż wielkie litery, co z kolei prowadzi do bardziej zróżnicowanych kształtów słów. TO UŁATWIA TEKST PISEMNY W DOLNEJ KLASIE, ABY PRZECZYTAĆ NIŻ TEKST PISEMNY W DUŻYCH LITERACH.

Obserwacje te są łatwe do zweryfikowania, a nawet zostały potwierdzone badaniami naukowymi.

Ponadto kultura UNIX preferuje konwencje, które są nie tylko łatwe do odczytania, ale także łatwe do napisania; Hakerzy UNIX to zazwyczaj ludzie, którzy spędzają dużo czasu na używaniu klawiatury, a wielu używa albo oficjalnego systemu pisania na klawiaturze, albo osobistych modyfikacji dostosowanych do programowania. Koncepcja pozostania w rzędzie głównym jest ważna w obu przypadkach, więc ludzie lubią unikać używania klawiszy, do których nie można uzyskać dostępu z rzędu głównego, zwłaszcza klawiszy Shift.

Jeśli połączysz te trzy ograniczenia, istnieje naprawdę jedna rozsądna konwencja, którą jest all-lowercase-with-dashes.

tdammers
źródło
3
@StephaneRolland: dążenie do spójnego nazewnictwa różnych elementów, takich jak identyfikator w różnych językach programowania i nazwach plików, nie jest mądre. Bądź konsekwentny w każdym królestwie i trzymaj się ustalonych konwencji, ale nie próbuj znaleźć jednej konwencji, aby rządzić nimi wszystkimi. Zmienne Java nie są nazwami tabel SQL i nie są też nazwami plików.
tdammers
@StephaneRolland - wierzę, że słowo, którego chcesz, to wąż .
cchamberlain