Używasz podkreślenia w nazwach plików?

26

Często używam wiersza polecenia do nawigacji po plikach, więc staram się nie mieć spacji w nazwach plików. Zazwyczaj do łączenia słów używałem podkreślnika, ale ostatnio zasugerowałem, że powinienem użyć myślnika. Czy są jakieś wady używania podkreślenia w nazwach plików? Czy powinienem przejść na myślnik? W moim systemie działa Xubuntu i prawie wyłącznie używam powłoki bash.

Dzięki

DQdlM
źródło
1
Jeśli będziesz używać LaTeXa, być może będziesz musiał chronić nazwę pliku w kilku nawiasach {...}. W przypadku automatycznego skryptu powinieneś to rozważyć. _Służy do tworzenia indeksu dolnego i muszą być zawarte na przykład w $...$celu błędu uniknąć, ale będzie generować inny tekst z tym, czego się spodziewałem. W rozszerzonym terminalu gnuplot też ..
Hastur

Odpowiedzi:

23

Jeśli chodzi o system operacyjny, oba są tak samo użyteczne.

Chciałbym zauważyć, że niektóre programy (takie jak niektóre systemy odtwarzania wideo - XBMC itp.) Automatycznie zastępują podkreślenia spacjami podczas wyświetlania plików, aby wyglądały ładniej.

Tylko z tego powodu pokusiłbym się o podkreślenie.

Łączniki używane są również do przełączania poleceń, więc może być trochę mylące, mając łączniki w nazwach plików, a także w przełącznikach poleceń.

Poza tym zależy to wyłącznie od osobistego wyboru.

Majenko
źródło
1
Używam czajników, ale to dlatego, że bardziej podoba mi się wygląd. Z przyczyn technicznych.
beatgammit
Dzięki! Podejrzewałem to, ale przekonałem się również, że samo podejrzenie może wpędzić mnie w kłopoty.
DQdlM,
16

Dash nie wymaga naciskania SHIFT, co oznacza, że ​​piszesz szybciej. To jedyna inna korzyść, jaką mogę wymyślić ponad sugestie pana Jenkinsa.

Prawdopodobnie osoba zgłaszająca tę sugestię jest zapalonym użytkownikiem Vima i chce robić wszystko przy minimalnym ruchu klawiatury.

LawrenceC
źródło
7
Gdyby tak było, vi
użyliby
4
@Matt to alias„ed do vi tak ;-)
Daniel Beck
+1 Z tego samego powodu używam podkreślników z nazwami wielkimi literami, np. FOO_BAR(Nie używam klawisza Caps Lock, więc miło jest móc przytrzymać Shift przez cały czas).
Richard Hansen
@DanielBeck Tak naprawdę mam to w aliasach bash, a także gdla git:)
Jan Warchoł
Wierzę, że vim uważa dwa słowa rozdzielone myślnikiem za pojedyncze słowo, więc może to być powód, aby używać podkreślników w nazwach plików jako użytkownik vim.
oddRaven
8

Zalecam stosowanie podkreślników zamiast spacji. Podkreślenia są zwykle konwencją stosowaną przez ludzi przy zamianie spacji, chociaż myślę, że myślniki też są w porządku. Ale ponieważ łączniki mogą pojawiać się na inne sposoby, takie jak słowa dzielone, możesz odnieść większy sukces w zachowaniu wartości nazwy za pomocą podkreślników. Na przykład, jeśli masz plik o nazwie „Zdjęcie zrobione w Winston-Salem, NC.jpg” i chcesz przekonwertować spacje na podkreślenia, możesz zachować łącznik w nazwie i zachować jego znaczenie.

Spacje powodują problemy dla osób, które chcą korzystać z wiersza poleceń w bardziej zaawansowany sposób, na przykład w przypadku pętli:

for file in *.mp3 ; do mpg321 $file -w - | oggenc -o ${file%%.mp3}.ogg - ; done

Jeśli którykolwiek z plików mp3 pasujących do tego symbolu wieloznacznego ma spacje w nazwie, spowoduje to, że nazwa pliku zostanie podzielona na sekcje zamiast całości. Możesz obejść ten problem, zmieniając zmienną IFS powłoki BASH lub używając polecenia find, ale jest to uciążliwe i wiele osób nie wie o tym, więc może powodować problemy.

Wątpię, czy ta kampania naklejek na zderzaki uniemożliwiłaby ludziom umieszczanie spacji w nazwach plików, ale jeśli chcesz sobie pomóc, zwiększ moc i dziękuję w imieniu tych, którym zależy.

deltaray
źródło
1
Całkowicie się zgadzam. Dobrze skonstruowana nazwa pliku nie wymaga spacji.
DQdlM
4
@KennyPeanuts - ale dobrze napisany program nie dusi się spacjami.
detly
2
@detly - touche '
DQdlM
1
@detly Nie, dobry programista rozumie, że muszą istnieć ograniczenia w tym, co możesz i powinieneś zrobić. Jeśli powiesz, że nie powinno się zadławić na spacjach, to ktoś mógłby to podnieść i powiedzieć, że nie powinno się zadławić na końcu linii, wtedy ktoś powiedziałby, że nie powinno się zadławić /, a ktoś mógłby powiedzieć, że nie powinno się zadławić na końcu pliku. Istnieje stare powiedzenie „Formuła na porażkę: staraj się zadowolić wszystkich”.
deltaray,
1
Specyfikacja systemu plików mówi ci, do czego kodować, nie więcej, nie mniej. Na przykład w Ext2 / 3/4 nazwa pliku może zawierać dowolny znak oprócz \0lub \\\`. Coding to anything less than that is broken by design. So, no, it shouldn't choke on spaces, or EOL, or non-ASCII characters, or anything that isn't \ 0` lub `\ '. Używanie funkcji bibliotecznych do manipulacji ścieżkami plików jest dobrym rozwiązaniem, ponieważ wiele innych osób już rozwiązało te problemy.
detly
5

Jedynym powodem, dla którego powinieneś rozważyć użycie łączników zamiast podkreślników, jest podstawowa czytelność. Częste podkreślenia mają tendencję do zniekształcania odczytu, ponieważ zmienia on linię widzenia od środka osi Y do dołu. Łączniki ułatwiają jednak wzrok.

Jeśli chodzi o system operacyjny, oba znaki są jednakowo poprawne i nie wymagają ucieczki (co robi spacja, a więc praca z nią jest trudna).

Varun Madiath
źródło
2
Uważam, że podstawowy powód czytelności jest czysto subiektywny. Uważam, że podkreślenia są łatwiejsze do odczytania, ponieważ praktycznie mogę je wizualnie zignorować - nie przeczytać - podczas gdy myślniki muszę je przeczytać.
goliatone
3

Ja osobiście wolę łączniki niż podkreślenie, ponieważ nie musisz przytrzymywać dla nich klawisza Shift. Ale jedną rzeczą do zapamiętania jest to, że jeśli zajmujesz się głównie kodowaniem w języku Python - a twoje drzewo kodu zawiera pliki / katalogi z łącznikiem i zamierzasz używać ich jako modułów (wykonaj import pliku w kodzie), spowoduje to błędy ponieważ moduły Pythona nie mogą mieć w nich łącznika. Oczywiście istnieją okrągłe sposoby importowania modułów z myślnikiem, ale trzymam się podkreślenia, ponieważ jest ono również zgodne z wytycznymi PEP-8.

Tak więc dla większości moich bin / programów lub aliasów używam łączników, ale jeśli chodzi o pisanie programów / modułów Pythona - używam podkreślników.

Saurabh Hirani
źródło
2

Istnieją dobre powody, aby używać łączników w dowolnym kontekście internetowym odwzorowanym na system plików Unix.

URL               What search indexes see
foo-baz-bang      foo baz bang
foo_baz_bang      foobazbang

Jako programista zmusił mnie do trzymania łączników podczas rozdzielania słów.

bogate przypomnienie
źródło
1
Wspomniany kontekst jest prawdopodobnie związany między innymi z postem na blogu Matt Cutts w 2005 r., W którym algorytmiczna preferencja Google dla łączników w porównaniu z podkreśleniami jest lepszym wskaźnikiem symbolu zastępczego białych znaków.
jmmygoggle