Saya tidak yakin apakah ini pertanyaan "benar" untuk dikirim di sini. Saya mungkin bertanya lebih banyak tentang "pendapat" daripada jawaban kategoris yang sebenarnya (dari mereka yang bekerja atau tidak, dan hanya itu).
Saya bertanya-tanya apa nama pemisah akan menjadi yang paling ramah linux (atau lebih khusus, ramah Bash ) dan ramah manusia pada saat yang sama.
Katakanlah saya ingin membuat direktori yang berisi sesuatu yang terkait dengan Mr. Foo Bar ( Foo menjadi nama depan, Bar menjadi nama belakang)
Memiliki nama " Foo-Bar/
" sangat nyaman. -
adalah karakter "biasa", tidak perlu melarikan diri, itu jelas menunjukkan bahwa Foo
dan Bar
dua hal yang terpisah ... Bagus.
Sekarang, " Foo.Bar
" agak sulit. Seseorang mungkin berpikir itu Foo.Bar
sebenarnya sebuah file (sekilas, terutama jika Anda tidak mengaktifkan terminal dengan pewarnaan) di mana " Foo
" adalah nama file, dan " Bar
" ekstensi.
Saya juga bisa menggunakan " Foo Bar
", tapi kemudian saya harus keluar dari spasi ketika saya ingin mengakses direktori dan, jika saya ingin daftar isi direktori induk (di mana Foo Bar
berada) dan meletakkan daftar kata dalam array bash, the ruang putih akan menyebabkan masalah (banyak). Tidak baik.
Kurung ()
juga menyebabkan banyak masalah. Mereka juga perlu melarikan diri, kemudian menyebabkan masalah dengan perintah sebagai scp
... Tidak baik.
Jadi ... pertanyaannya (akhirnya) adalah: Jika Anda perlu membuat nama file menjadi jelas dan bermakna dalam sekejap, dan Anda perlu menggunakan pemisah, apa yang Anda gunakan?
Jawaban:
Jawaban singkat: "Foo _-_ Bar"
Jawaban panjang:
Untuk membuat hal-hal mudah dikenali saya cenderung menggunakan urutan karakter di daerah-daerah di mana ini diperlukan, idenya adalah menggunakan sesuatu yang mudah dikenali sehingga Anda mendapatkan bahwa ini adalah pemisah mungkin sesuatu seperti "_-_" atau " ___ ".
Contoh praktis di mana saya menggunakan ini adalah koleksi mp3 saya di mana nama file berisi artis dan judul lagu, dan kadang-kadang nomor urut. Dan jika Anda menggunakan urutan ajaib untuk memisahkannya, mudah bagi mata dan skripnya. Contoh mp3 bisa terlihat seperti ini.
Sekarang ini dapat diterjemahkan ke dalam contoh Anda jika Foo dan Bar adalah dua hal logis yang tidak boleh dicampur, dan yang kemudian bisa menjadi Foo _-_ Bar.
sumber
VAGRANTSLASH
dalam nama file di mana pemisahannya.Dengan begitu banyak karakter yang Anda mungkin tidak berpikir harus spesial, bahkan menjadi istimewa, saya tetap menggunakan karakter khusus. Ini juga menempatkan saya dalam kebiasaan baik menggunakan bash completion, di mana ia akan otomatis lepas dari semua karakter khusus dalam nama file. Tapi itu juga menempatkan saya dalam kebiasaan yang baik untuk melarikan diri / mengutip SEMUA dalam skrip dan multi-bagian 1-liners di bash.
Misalnya, hanya dalam 1-liner sederhana:
for file in *.txt; do something.sh "$file"; done
Dengan begitu, bahkan jika salah satu file memiliki spasi, atau karakter lain, the
do
bagian dari loop masih akan bertindak di atasnya, dan tidak ketinggalan pada 2 atau lebih file-nama-bagian, mungkin menyebabkan efek samping yang tidak diinginkan.Karena saya tidak dapat mengontrol penamaan ruang / bukan-ruang dari SETIAP file yang saya temui, dan jika saya mencoba, itu mungkin akan memecahkan beberapa symlinks di suatu tempat, menyebabkan konsekuensi yang lebih tidak disengaja, saya hanya berharap bahwa semua nama file / direktoriname dapat memiliki ruang di dalamnya, dan hanya mengutip / melarikan diri semua variabel untuk mengkompensasi.
Jadi, maka saya hanya menggunakan karakter apa pun yang saya inginkan (sering spasi) dalam nama file.
Saya bahkan menggunakan spasi dalam nama-nama dataset ZFS, yang harus saya akui telah menyebabkan cukup banyak head-scratching di antara para pengembang yang menulis perangkat lunak untuk NAS yang saya gunakan.
Ringkasan: Spasi bukan karakter yang tidak valid , jadi tidak ada alasan untuk tidak menggunakannya.
sumber
Saya menggunakan tanda hubung
-
, untuk alasan yang Anda sebutkan di atas. Saya menghindari garis bawah karena mereka perlu menggunakan tombol shift, jadi perlu setidaknya dua kali lebih lama untuk mengetik (juga, saya pikir mereka jelek)Saya lebih cenderung melakukan ini untuk nama file skrip daripada yang lain - saya kira lebih penting bagi saya untuk mengidentifikasi dengan jelas untuk apa sebuah skrip. File dokumen hanyalah data lembam, tetapi skrip berpotensi berbahaya jika disalahgunakan.
sumber
Saya menggunakan garis bawah (
_
). Secara visual mereka menghilang, dan mudah diketik dan tidak istimewa.sumber
-
, dan lebih sulit untuk mengetik (kita harus menggunakan tombol shift)