Sử dụng dấu gạch dưới trong tên tập tin?


25

Tôi sử dụng dòng lệnh thường xuyên để điều hướng các tệp của mình vì vậy tôi cố gắng không có khoảng trắng trong tên tệp. Thông thường tôi đã sử dụng dấu gạch dưới để kết nối các từ nhưng gần đây có gợi ý rằng tôi nên sử dụng dấu gạch ngang. Có bất kỳ nhược điểm nào khi sử dụng dấu gạch dưới trong tên tệp không? Tôi có nên chuyển sang một dấu gạch ngang? Hệ thống của tôi đang chạy Xubfox và tôi hầu như chỉ sử dụng bash shell.

Cảm ơn



1
Nếu bạn sẽ sử dụng LaTeX, bạn có thể phải bảo vệ tên tệp bên trong một vài dấu ngoặc {...}. Trong trường hợp kịch bản tự động, bạn nên xem xét nó. Cái _này được sử dụng để tạo ra một mục con và phải được đưa vào, ví dụ như $...$để tránh lỗi, nhưng nó sẽ tạo ra một văn bản khác với những gì bạn đang mong đợi. Trong thiết bị đầu cuối được tăng cường của gnuplot cũng vậy ..
Hastur

Câu trả lời:


22

Về hệ điều hành, cả hai đều có thể sử dụng được lẫn nhau.

Một điều tôi cần lưu ý - một số phần mềm (chẳng hạn như một số hệ thống phát video - XBMC, v.v.) sẽ tự động thay thế dấu gạch dưới bằng dấu cách khi hiển thị tệp để làm cho chúng trông đẹp hơn.

Vì lý do đó một mình tôi đã bị cám dỗ để dính vào dấu gạch dưới.

Ngoài ra, dấu gạch nối được sử dụng để chuyển sang các lệnh, vì vậy có thể hơi khó hiểu khi có dấu gạch nối trong tên tệp của bạn cũng như trong các chuyển đổi lệnh của bạn.

Ngoài ra, đó hoàn toàn là lựa chọn cá nhân.


1
Tôi sử dụng hythens, nhưng đó là vì tôi thích cái nhìn tốt hơn. Để lý do kỹ thuật đằng sau nó.
beatgammit

Cảm ơn! Đó là những gì tôi nghi ngờ nhưng tôi cũng thấy rằng việc nghi ngờ một mình có thể khiến tôi gặp rắc rối.
DQdlM

16

Dash không yêu cầu bạn nhấn SHIFT, nghĩa là bạn nhập nhanh hơn. Đó là lợi ích duy nhất khác mà tôi có thể nghĩ đến ở trên những gì ông Jenkins đã đề xuất.

Có khả năng người đưa ra đề xuất đó là một người dùng Vim khao khát và muốn làm mọi thứ với số lần di chuyển bàn phím ít nhất.


7
Nếu đó là trường hợp họ sẽ sử dụng vithay thế - một lần gõ phím ít hơn;)
Majenko

4
@Matt nó vẫn aliasphù hợp với vmọi thứ ;-)
Daniel Beck

+1 Vì lý do tương tự, tôi sử dụng dấu gạch dưới với tên tất cả chữ hoa, như FOO_BAR(Tôi không sử dụng khóa mũ, vì vậy thật tuyệt khi có thể giữ phím Shift toàn bộ thời gian).
Richard Hansen

@DanielBeck Tôi thực sự có điều đó trong các bí danh bash của mình, cũng như gcho git:)
Jan Warchoł 19/03/2015

Tôi tin rằng vim coi hai từ được phân tách bằng dấu gạch nối là một từ duy nhất, vì vậy đây có thể là một lý do để sử dụng dấu gạch dưới trong tên tệp như một người dùng vim.
lẻRaven

8

Đề nghị của tôi là sử dụng dấu gạch dưới thay vì khoảng trắng. Dấu gạch dưới thường là quy ước mà mọi người sử dụng khi thay thế khoảng trắng, mặc dù dấu gạch nối cũng tốt. Nhưng vì các dấu gạch nối có thể hiển thị theo các cách khác như các từ được gạch nối, bạn sẽ thành công hơn trong việc bảo tồn giá trị tên bằng cách sử dụng dấu gạch dưới. Chẳng hạn, nếu bạn có một tệp có tên "Một bức ảnh được chụp trong Winston-Salem, NC.jpg" và bạn muốn chuyển đổi khoảng trắng thành dấu gạch dưới, thì bạn có thể giữ dấu gạch nối trong tên và giữ nguyên ý nghĩa của nó.

Không gian gây ra vấn đề cho những người muốn sử dụng dòng lệnh theo những cách nâng cao như trong các vòng lặp như thế này:

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

Nếu bất kỳ tệp mp3 nào khớp với ký tự đại diện đó có khoảng trắng trong tên của chúng, nó sẽ khiến tên tệp được chia thành các phần thay vì toàn bộ. Bạn có thể khắc phục điều này bằng cách thay đổi biến IFS của BASH shell hoặc sử dụng lệnh find, nhưng nó gây phiền toái và nhiều người không biết điều này, vì vậy nó có thể gây ra vấn đề.

Tôi nghi ngờ điều này hoặc thậm chí là một chiến dịch sticker bội thu sẽ ngăn mọi người đặt dấu cách vào tên tệp, nhưng nếu bạn muốn giúp mình, hãy tiếp thêm sức mạnh cho bạn và cảm ơn bạn thay cho những người quan tâm.


1
Tôi hoàn toàn tán thành. Một tên tệp được xây dựng tốt không cần khoảng trắng.
DQdlM

4
@KennyPeanuts - nhưng một chương trình được viết tốt không gây nghẹt thở trên không gian.
gièm pha

2
@detly - touche '
DQdlM

1
@detly Không, một lập trình viên giỏi hiểu rằng phải có giới hạn trong những gì bạn có thể làm và nên làm. Nếu bạn nói rằng nó không bị sặc trên không gian, thì ai đó có thể nói điều đó và nói rằng nó không nên bị nghẹt ở cuối dòng, thì ai đó sẽ nói rằng nó không nên bị nghẹt thở /, sau đó ai đó có thể nói rằng nó không nên bị nghẹt thở vào cuối tập tin. Có một câu nói cũ "Công thức cho sự thất bại: cố gắng làm hài lòng tất cả mọi người".
deltaray

1
Thông số hệ thống tập tin cho bạn biết mã để làm gì, không hơn, không kém. Ví dụ, trên Ext2 / 3/4, tên tệp có thể chứa bất kỳ ký tự nào ngoại trừ \0hoặc \\\`. 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` hoặc `\`. Sử dụng các chức năng thư viện để thao tác đường dẫn tệp là cách để đi, bởi vì nhiều người khác đã giải quyết những vấn đề này.
gièm pha

5

Lý do duy nhất bạn nên xem xét sử dụng dấu gạch ngang thay vì dấu gạch dưới là vì khả năng đọc cơ bản. Các dấu gạch dưới thường xuyên có xu hướng làm biến dạng việc đọc, vì nó thay đổi đường tầm nhìn của bạn từ trung tâm của trục y xuống phía dưới. Hyphens tuy nhiên làm cho nó dễ dàng hơn trên mắt.

Theo như hệ điều hành được điều chỉnh, cả hai ký tự đều có giá trị như nhau và không yêu cầu thoát (điều mà không gian thực hiện và do đó rất khó để làm việc).


2
Tôi tìm thấy lý do dễ đọc cơ bản là hoàn toàn chủ quan. Tôi thấy phần dưới dễ đọc hơn vì tôi có thể bỏ qua chúng một cách trực quan - không đọc chúng - trong khi dấu gạch ngang tôi thực sự phải đọc chúng.
goliatone

3

Cá nhân tôi thích dấu gạch ngang hơn dấu gạch dưới vì bạn không cần phải giữ phím shift cho chúng. Nhưng một điều cần nhớ là nếu bạn chủ yếu thực hiện mã hóa python - và cây mã của bạn có các tệp / thư mục có dấu gạch nối trong đó và bạn dự định sử dụng chúng làm mô-đun (thực hiện nhập tên tệp trong mã của mình), thì điều này sẽ gây ra lỗi như mô-đun python không thể có dấu gạch nối trong chúng. Tất nhiên, có nhiều cách nhập vòng các mô-đun có dấu gạch nối nhưng tôi vẫn sử dụng dấu gạch dưới vì nó cũng tuân theo hướng dẫn PEP-8.

Vì vậy, đối với hầu hết các chương trình bin / chương trình hoặc bí danh của tôi, tôi sử dụng dấu gạch nối nhưng khi viết các chương trình / mô-đun python - tôi sử dụng dấu gạch dưới.


2

Có nhiều lý do tốt để sử dụng dấu gạch nối trong bất kỳ ngữ cảnh dựa trên web nào ánh xạ tới hệ thống tệp Unix.

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

Là một nhà phát triển web, điều này đã buộc tôi phải gắn bó với các dấu gạch nối khi tách các từ.


1
Bối cảnh được đề cập ở trên có lẽ liên quan đến - trong số những thứ khác - một bài đăng trên blog Matt Cutts năm 2005 liên quan đến ưu tiên thuật toán của Google đối với dấu gạch nối so với dấu gạch dưới là một chỉ báo tốt hơn về trình giữ chỗ trong khoảng trắng.
jmmygoggle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.