Gaya / praktik yang baik untuk pemisah dalam nama file (atau direktori) [ditutup]

16

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 Foodan Bardua hal yang terpisah ... Bagus.

Sekarang, " Foo.Bar" agak sulit. Seseorang mungkin berpikir itu Foo.Barsebenarnya 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 Barberada) 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?

BorrajaX
sumber
5
Untuk referensi: set karakter Nama File POSIX Portable .
jw013
Saya sering menggunakan tanda hubung, tetapi itu tergantung pada apa yang saya lakukan. Beberapa orang mungkin menganggap case unta sepantasnya seperti FooBar.
klapaucius

Jawaban:

14

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.

  • 01_Blue_Man_Group _-_ Di atas.mp3
  • 02_Blue_Man_Group _-_ Time_to_Start.mp3
  • 03_Blue_Man_Group _-_ Sing_Along.mp3

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.

Johan
sumber
2
Dan dengan cara ini Anda juga dapat membedakan nama yang sudah berisi tanda hubung (atau pemisah pada umumnya).
lynxlynxlynx
1
Juga sangat bagus untuk reg ex parse! : ^ (. +) _-_ (. +) \. mp3 $
DanDan
Mengingat bahwa manusia akan melihat file-file ini, ini adalah jawaban yang bagus; Intinya saya akan menganggap ini sebagai string pemisah; Pemisah unik multi-karakter. Dalam Vagrant, saya perhatikan menggunakan string VAGRANTSLASHdalam nama file di mana pemisahannya.
ThorSummoner
9

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.

pembunuh kulit
sumber
6

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.

cas
sumber
5

Saya menggunakan garis bawah ( _). Secara visual mereka menghilang, dan mudah diketik dan tidak istimewa.

bahamat
sumber
4
saya menemukan mereka lebih buruk daripada -, dan lebih sulit untuk mengetik (kita harus menggunakan tombol shift)
tshepang