Orang mengatakan Anda tidak boleh menggunakan spasi dalam penamaan file Unix. Apakah ada alasan bagus untuk tidak menggunakan huruf kapital dalam nama file (yaitu, File_Name.txt
vs. file_name.txt
)? Atau ini hanya masalah preferensi pribadi?
Orang mengatakan Anda tidak boleh menggunakan spasi dalam penamaan file Unix. Apakah ada alasan bagus untuk tidak menggunakan huruf kapital dalam nama file (yaitu, File_Name.txt
vs. file_name.txt
)? Atau ini hanya masalah preferensi pribadi?
Jawaban:
Orang mengatakan Anda tidak boleh spasi dalam penamaan file Unix.
Orang mengatakan banyak hal. Ada beberapa alat yang mungkin gagal, tetapi semoga jumlahnya sedikit pada saat ini, karena ruang adalah virus yang diperbanyak oleh perusahaan-perusahaan OS milik konsumen raksasa dan sekarang mustahil untuk dihindari.
Spaces membuat menentukan nama file pada baris perintah, dll., Canggung. Itu saja. Satu-satunya karakter yang dilarang pada sistem * nix adalah NUL (jangan khawatir, itu tidak ada di keyboard Anda, atau siapa pun) dan /
, karena itu adalah pemisah jalur. 1 Selain itu, apa pun terjadi. Elemen jalur individual (nama file) dibatasi hingga 255 byte (kemungkinan komplikasi jika Anda menggunakan rangkaian karakter yang diperluas) dan menyelesaikan jalur hingga 4 KiB.
Atau ini hanya masalah preferensi pribadi
Saya akan mengatakan itu. Kebanyakan DE ini tampaknya membuat membunuh direktori dikapitalisasi di Anda $HOME
( Downloads
, Desktop
, Documents
- yang D
sangat populer), jadi tidak ada yang aneh tentang hal itu. Ada juga file tradisional yang sangat umum dengan huruf kapital di dalamnya, seperti .Xclients
dan .Xauthority
.
Nilai kapitalisasi hal-hal di awal adalah bahwa ketika terdaftar secara leksikografis mereka akan datang sebelum hal-hal kecil - setidaknya, dengan banyak alat, dan tergantung pada lokal.
Saya penggemar case unta (alias. CamelCase) dan menggunakannya dengan nama file, misalnya /home/goldilocks/blueSuedeShoes
- tidak peduli apa yang ada di sana. Pasti masalah preferensi pribadi tetapi belum membuat saya sedih.
File kelas Java cenderung mengandung huruf kapital secara alami, karena nama kelas Java melakukannya. Dan tentu saja, jangan lupa NetworkManager
, bahkan jika beberapa dari kita lebih suka.
1. Ada yang lebih terbatas, direkomendasikan oleh POSIX "Portable Filename Character Set" yang tidak termasuk spasi - tetapi itu termasuk huruf besar! POSIX juga menentukan batasan yang lebih umum tentang "karakter garis miring dan byte nol" di tempat lain dalam dokumen yang sama . Ini mencerminkan, atau tercermin dalam, praktik konvensional lama .
README
dan Makefile
dan seterusnya.
Salah satu alasan untuk menghindari batas dalam nama file adalah bahwa urutan pengurutan di Unix peka terhadap huruf besar-kecil, sehingga file yang dimulai dengan huruf kapital akan tampak rusak. Itulah alasan mengapa Makefile
biasanya dinamai menggunakan modal M
- itu adalah salah satu file yang ingin Anda lihat pertama kali, tanpa menggulir / melewati palung a-l
.
Ini mengatakan, Anda dapat melakukan jauh lebih buruk dalam hal nama file:
-
dapat menyebabkan masalah karena banyak program akan melihatnya sebagai opsi baris perintah alih-alih nama file (misalnya rm -r
tidak akan menghapus nama file -r
)..
akan menyembunyikannya dari banyak utilitas dan shell globbing (mis. rm *
tidak akan menghapus file seperti .config
)|<>*?
dan bahkan karakter yang tidak dapat dicetak seperti newline
secara teknis dimungkinkan, tetapi dapat merusak skrip / program yang mirip dengan karakter spasi. Perbedaannya adalah bahwa karakter spasi sering digunakan, sehingga programmer cenderung menguji program mereka terhadapnya, sementara karakter yang kurang populer sering tetap belum teruji.rm *
tidak akan menghapus file seperti .config
?
Makefile
dan README
merupakan contoh sempurna untuk itu. Perhatikan juga bahwa efek ini dapat diabaikan jika surat itu bukan huruf pertama dalam namanya, jadi ini bukan masalah besar jika Anda menggunakan camelCase. Tentu, Anda mungkin terkejut melihat anOctagon
sebelumnya angle
, tetapi setidaknya mereka akan bersama dalam daftar.
Jika Anda akan berinteraksi dengan lingkungan Windows, Anda harus menghindari huruf besar karena Windows akan mengurangi semuanya. Ini lebih sering masalah terjadi sebaliknya; tautan ke Page_2.html
akan ditemukan page_2.html
di Windows, tetapi akan gagal di Unix.
NUL
dan /
dilarang.
cat > Foo
akan menimpa file foo
. Perilaku ini cenderung tidak terduga dan membingungkan jika Anda terbiasa dengan filesystem case-preserving dan case-sensitive seperti ext *.
\0
dan /
, case-sensitive). Setidaknya itulah yang saya ingat. Tapi saya setuju bahwa itu agak berantakan. Ada batasan lebih lanjut dalam ...
Salah satu alasan untuk menghindari pembatasan adalah bahwa bash
penyelesaian tab s peka huruf besar-kecil (setidaknya secara default) —ini masih membuat saya tersandung setiap kali saya berakhir di depan bash
dengan konfigurasi default. Tentu, ada shell populer lainnya, tetapi ini dikombinasikan dengan fakta bahwa bash
shell login default pada banyak OS berarti bahwa default seringkali penyelesaian case-sensitive. Menggunakan nama file semua-huruf kecil agak menyederhanakan hal-hal di sini.
echo set completion-ignore-case On >> ~/.inputrc
dapat membantu sedikit, setidaknya di sistem Anda sendiri.
Foo
dan kemudian ketik cat f
(Tab), itu akan gagal. Tetapi hal yang sama terjadi jika Anda mengetik cat foo
, cat Foobar
atau cat Fu
- fakta bahwa Anda akan kesulitan mengakses file yang namanya tidak Anda ingat dengan benar tidak benar-benar ada hubungannya dengan pelengkapan otomatis.
Karena NL_Derek membuka kaleng cacing ini, tetapi tidak mengartikulasikannya dengan benar, saya akan mengatakan ini:
Tidak apa-apa menggunakan huruf kapital, tetapi Anda harus menghindari membuat file (dalam direktori yang sama) yang berbeda hanya berdasarkan kasus , misalnya, File_Name.txt
dan file_name.txt
, karena
FILENA~1.TXT
dan FILENA~2.TXT
- ketik dir /x
untuk melihat nama pendek apa (jika ada) dengan nama panjang apa.)cmd1 > foo
cmd2 > Foo
cmd2
Terlepas dari alasan teknis, saya memiliki aspek praktis untuk ini. Menempel huruf kecil akan memastikan bahwa pencarian lebih mudah kecuali seseorang terlalu suka menggunakan grep -i atau cari -i. Kadang-kadang, bahkan camelCase dapat membingungkan jika kita harus menggunakan serangkaian kata-kata seperti-kasus seperti di storageNYCDCPrimary. Jadi, saya menemukan yang terbaik untuk tetap menggunakan huruf kecil dan membumbui mereka dengan garis bawah atau tanda hubung agar mudah dibaca, seperti storage_nyc_dc_primary.
storageNycDcPrimary
dan StorageNycDcPrimary
keduanya aneh untuk dibaca.
Saya menganggap itu adalah praktik terbaik untuk menghindari menggunakan huruf besar dan spasi dalam nama file.
Beberapa akan mengatakan mereka tidak setuju tetapi ini adalah masalah atau apa yang saya sebut keyakinan agama : sulit untuk didiskusikan dan disepakati. Mereka yang tidak setuju mengatakan bahwa sebagian besar alat sekarang ditetapkan menjadi ibukota dan ruang ramah: mereka benar tetapi ini bukan pertanyaannya.
Pertanyaan yang tepat adalah berapa banyak yang Anda butuhkan untuk menggunakan huruf kapital dan spasi dalam nama file. Untuk pertanyaan ini, kecuali ketika saya pemrograman di Jawa, jawabannya sebagian besar sepanjang waktu: Saya tidak perlu modal dan spasi di nama file saya . Semua ruang saya ganti dengan garis bawah ( _
) atau tanda minus ( -
), dan karena itu saya tidak menggunakan kasing unta (alias. CamelCase) yang bertentangan dengan beberapa agama lain.
Banyak orang menyebut saya omong kosong karena melakukan dan mengajarkan bahwa - beberapa dari mereka masih melakukannya - beberapa dari mereka tersandung alat yang tidak ramah modal / ruang dan datang kepada saya mengatakan bahwa saya benar dan bahwa mereka seharusnya mendengarkan saya. Lakukan apa pun yang Anda inginkan , dan jika Anda menggunakan huruf besar dan spasi dalam nama file, saya harap Anda tidak akan pernah tersandung pada alat yang ditulis dengan buruk. Namun, jika Anda menggunakan alat tersebut, semoga lagi, itu tidak akan sulit untuk diperbaiki dan tidak akan membebani bisnis Anda dan / atau Anda banyak uang dan / atau waktu. Tetapi jika itu berakibat buruk, Anda akan ingat bahwa beberapa orang mengatakan di masa lalu bahwa menggunakan huruf besar dan spasi dalam nama file adalah praktik yang buruk.
Dan satu hal lagi, jika Anda ingin menghindari semua masalah , tidak ada karakter khusus dalam nama file (hanya huruf kecil, digit, garis bawah dan minus [1]). Daftar karakter yang tidak diinginkan ini juga mencakup semua karakter non ascii (ya, Prancis dan orang-orang non Inggris lainnya - dan saya adalah salah satunya - tidak satupun dari mereka: à, â, ä, ç, é, ..., ö, æ, œ , ...). Ini juga meluas ke banyak hal lainnya, termasuk login dan kata sandi . Saya akan membiarkan Anda menebak apa yang terjadi ketika Anda memberikan penawaran atau penawaran ganda ( '
atau "
) di login atau kata sandi yang ditangani oleh skrip bash yang tidak ditulis oleh sysadmin yang dikonfirmasi ....
[1]: mungkin kita bisa memperluas bahwa untuk ~
, @
, #
dan beberapa orang lain, tapi ini adalah mencari masalah (dan ya aku tahu tentang file emacs ...).