Apakah benar untuk menggunakan karakter tertentu khusus, seperti +
, &
, '
, .
(dot) dan ,
(koma), pada dasarnya, dalam nama file.
Saya mengerti bahwa Anda dapat menggunakan -
dan _
tanpa masalah, tetapi melakukan penelitian saya tidak dapat menemukan sesuatu yang pasti tentang simbol-simbol lain; beberapa mengatakan bahwa Anda bisa, beberapa mengatakan bahwa Anda tidak bisa, dan beberapa yang lain mengatakan bahwa "tidak dianjurkan" untuk menggunakannya (apa pun artinya).
filenames
unix-philosophy
Chris Klein
sumber
sumber
Jawaban:
Iya.
Benar tetapi tidak selalu disarankan atau nyaman.
Anda dapat menggunakan karakter apa pun kecuali null dan di
/
dalam nama file di sistem file Unix dan Linux modern.Anda dapat menggunakan tanda baca ASCII . Beberapa utilitas menggunakan berhenti ( titik ) dan koma dalam nama file yang mereka buat.
Anda dapat menggunakan karakter kontrol ASCII , namun hal ini tidak disarankan karena tidak mungkin ditampilkan dengan dapat diterima dan sulit digunakan.
Anda dapat menggunakan shell meta-karakter seperti ASCII ampersand dan ASCII apostrof. Namun ini tidak nyaman dan mengharuskan ketika membangun perintah Anda berhati-hati untuk mengutip atau melarikan diri karakter tersebut.
Anda dapat menggunakan karakter multi-byte menggunakan berbagai penyandian. Terserah shell dan / atau utilitas untuk menafsirkan dan menampilkan karakter non-ASCII dengan benar. Dianjurkan untuk membatasi diri Anda pada pengkodean populer seperti UTF-8 dan mengatur lokal dengan tepat.
Anda akan memiliki masalah paling sedikit menggunakan karakter ASCII yang dapat dicetak, membatasi rangkaian karakter tanda baca untuk karakter yang bukan shell meta-karakter dan tidak memulai nama dengan tanda hubung (atau berhenti - kecuali Anda ingin menyembunyikan file).
sumber
Seperti yang telah dinyatakan orang lain, pada sistem Unix / Linux modern, nama file dapat berisi karakter apa pun kecuali untuk
\0
(NUL) dan/
(slash).Selain itu, standar POSIX mendefinisikan set karakter portabel untuk nama file:
The
pathchk
utilitas dari GNU Coreutils pemeriksaan untuk ini saat dipanggil dengan-p
pilihan, dan-P
pilihan akan memperingatkan tentang nama file kosong (yang tidak valid tetapi mungkin dilewatkan sebagai argumen untukpathchk
) dan nama file yang dimulai dengan tanda hubung (-
).sumber
Taruhan teraman adalah merujuk ke entri wikipedia untuk set karakter yang diizinkan untuk sistem operasi apa pun. Itu bisa ditemukan di sini .
Sebagai contoh, untuk sebagian besar sistem berbasis unix, set karakter yang diizinkan adalah 8 bit set dan karakter yang dipesan adalah karakter nol (NUL,
'\0'
). Namun, itu bukan praktik yang baik untuk menggunakan karakter khusus dalam nama file karena mereka menimbulkan masalah saat menghapusnya.Misalnya, saya dapat memiliki nama file
-ramesh.txt
dan mencoba menghapusnya seperti di bawah ini.Saya perlu menghapus file sebagai,
Rincian lebih lanjut dapat ditemukan dari jawaban ini juga .
Jadi untuk menyimpulkan, masalahnya bukan dalam menggunakan karakter khusus untuk nama file tetapi tentang cara menanganinya.
sumber
-
tetapi hanya untuk menjadi tepat: 1) Anda pasti tidak memerlukan tanda kutip di sekitar nama file ini, 2) alih-alih menggunakan--
argumen khusus Anda dapat melakukan persis apa yangrm
disarankan sendiri:,rm ./-ramesh.txt
jadi Anda tidak perlu melakukannya persis seperti yang Anda sarankan.Penelitian Anda hampir benar. Dimungkinkan untuk menggunakan karakter khusus dalam nama file, tetapi tidak disarankan karena karakter ini memiliki arti khusus. Konvensi Penamaan File di Linux menjelaskan pembatasan lain pada nama file juga seperti "Nama file tidak boleh dimulai dengan tanda hubung."
Contoh sederhana melakukan operasi baris perintah dengan karakter khusus dalam nama file.
Sebagai catatan pribadi, saya lebih suka menghindari karakter khusus dalam nama file karena mereka memerlukan perhatian khusus ketika file-file ini digunakan untuk pemrosesan apa pun. Dengan demikian, menghilangkan kekhawatiran berurusan dengan karakter khusus dari proses pengembangan.
sumber
-
,_
dan.
(dot) dalam nama file?