Saya bertanya-tanya apa perlunya menempatkan perintah yang dapat dieksekusi di dalam .sh
file untuk membuat satu skrip, karena saya dapat melakukan hal yang sama dengan meletakkan perintah di dalam .txt
file dan membuatnya dapat dieksekusi menggunakan chmod
.
Saya berasumsi ini bisa dilakukan dengan salah satu ekstensi file. Jadi, saya cukup bingung tentang perlunya .sh
ekstensi. Bantuan apa pun akan sangat dihargai.
.txt
.txt suffix.txt, Anda.txt tidak.txt membantu.txt membantu.txt diri sendiri.txt (atau.txt siapa saja.txt yang lain .txt) memahami.txt what.txt masing-masing.txt file.txt adalah.txt di sana.txt untuk.txt.Jawaban:
Tidak perlu ekstensi file untuk mencocokkan sesuatu yang spesifik, seperti yang Anda temukan dengan benar.
Pada sistem mirip Unix, tipe file biasanya berasal dari konten file (yaitu "angka ajaib" atau struktur karakteristik lainnya dalam beberapa byte pertama) dan bukan dari namanya. Anda juga bisa menghilangkan ekstensi sepenuhnya, yang sering dilakukan untuk executable.
Periksa
file
perintah, ini menunjukkan kepada Anda informasi yang dapat ditemukan tentang jenis file dari isinya.Untuk skrip yang dapat dieksekusi, sistem mengharapkan apa yang disebut "shebang" di baris pertama, yang terlihat seperti misalnya
dan menunjukkan program mana yang akan dijalankan sebagai interpreter dengan file skrip sebagai argumen. Jika Anda menjalankan file teks tanpa semacam itu, itu akan menggunakan shell default Anda, yaitu Bash untuk mencoba dan menafsirkannya.
Jadi pada sistem Unix / Linux, ekstensi nama file sebagian besar merupakan petunjuk (tetapi tidak ada jaminan) bagi pengguna manusia untuk dengan cepat mengenali apa yang diharapkan mengandung file tertentu. Ini juga merupakan konvensi yang dapat membantu misalnya menemukan file lebih cepat.
Perhatikan bahwa ada beberapa pengecualian, di mana nama dan ekstensi penting (misalnya beberapa file konfigurasi sistem yang harus mengikuti konvensi penamaan, atau banyak pemirsa gambar dan editor juga memerlukan ekstensi untuk menunjukkan jenis file).
Anda juga dapat melihat apakah ekstensi file memiliki tujuan (untuk sistem operasi)?
sumber
Tidak ada yang namanya file "ekstensi" atau "ketik" dalam nama file UNIX / Linux.
Seperti yang ditunjukkan orang lain, "tipe" dapat ditemukan menggunakan perintah file dengan asumsi bahwa sihir yang relevan tersedia di sistem Anda. Nama file UNIX / Linux biasanya dapat berisi karakter apa pun yang tersedia tetapi sering kali bermanfaat untuk menggunakan beberapa bentuk konvensi untuk nama tersebut sehingga manusia dan mesin dapat membuat penilaian untuk konten (dan karenanya penggunaan konten).
Sebagai contoh, saya sering menggunakan koma sebagai karakter pertama dari nama file untuk menunjukkan file sementara daripada menggunakan sesuatu seperti string ".tmp" di akhir nama file. Hasilnya sama, file yang berisi data yang hanya diperlukan untuk waktu yang singkat mungkin tetapi nama itu tidak perlu memiliki "." di dalamnya atau string "tmp". Ini kadang-kadang dapat memiliki keuntungan misalnya ketika mengurai daftar nama file. Tetapi ini adalah konvensi SAYA dan orang lain dapat memutuskan yang lain bahkan menggunakan ".tmp" sebagai konvensi mereka atas nama untuk file sementara.
Jadi jawaban saya kepada Anda adalah bahwa tidak ada ekstensi file UNIX / Linux hanya seperangkat konvensi yang biasanya terlihat seperti ekstensi file yang digunakan dalam sistem operasi lain dan sistem file mereka.
sumber
"."
diberi titik oleh shell (mereka tidak dapat berjalan secara bermakna dalam subkulit). Sejalan dengan itu, saya menonaktifkan konvensi "dot awal = file tersembunyi" default di alias / skrip saya yang digunakanls
sehingga saya bisa melihat semua file, termasuk yang "tersembunyi". Demikian pula pada Windows, saya menonaktifkan pengaturan "sembunyikan ekstensi file".