Bagaimana saya bisa mengeksekusi file tanpa memberi saya mengeksekusi izin (dengan chmod u+x
) untuk itu?
Jika saya mencoba dan mencentang tanda centang 'Izinkan menjalankan file sebagai program', tanda centang segera dihapus.
permissions
executable
kiri
sumber
sumber
Jawaban:
Periksa kepemilikan file
Silakan lakukan ini sebelum hal lain (kecuali Anda yakin Anda memiliki file).
Periksa dan pastikan Anda memiliki file yang Anda coba jalankan dengan salah satu metode berikut.
Grafis
Garis komando
Jalankan perintah ini di terminal
You don't own the file
", lihat "Ubah kepemilikan file" di bawah.Ubah kepemilikan file
Jalankan perintah ini di terminal
File yang Dapat Dieksekusi
Sebuah jawaban yang saya temukan dari komentar oleh Lekensteyn pada jawaban untuk pertanyaan tentang
chmod
partisi NTFS yang saya pikir pantas untuk pertanyaan dan jawaban sendiri, kredit penuh untuk Lekensteyn.Gunakan perintah ini untuk file yang dapat dieksekusi (menggantikan
/path/to/executable
dengan jalur yang benar):File yang dapat dieksekusi 64 bit:
File yang dapat dieksekusi 32 bit:
Jika hal di atas tidak berhasil (atau menimbulkan file tidak ditemukan kesalahan), coba gunakan ini sebelum perintah di atas
Semua perintah di atas tidak akan berfungsi untuk skrip berbasis teks (Bash, Python, Perl, dll.), Lihat di bawah.
Periksa apakah suatu program 64 atau 32 bit
Gunakan perintah ini untuk mencari tahu apakah executable adalah 32 (
x86
) atau 64 (x86-64
) bitJika dikatakan
i386:x86-64
, maka itu 64 bit. Jikai386
hanya mengatakan , maka itu 32 bit.Skrip
Untuk skrip berbasis teks (Bash, Python, Perl, dll.), Anda harus menggunakan perintah yang ditentukan pada
#!
baris pertama dalam file.Misalnya, jika baris pertama file adalah
kemudian jalankan perintah ini di terminal (mengganti
/path/to/file
dengan jalur yang benar).jar
File JavaUntuk jar Java yang dapat dieksekusi, Anda cukup menggunakan perintah ini (mengganti
/path/to/jar
dengan jalur yang benar):Ketika Anda tidak membutuhkannya
cd "$(dirname /path/to/file)"
Ini adalah keadaan yang memungkinkan di mana Anda tidak perlu menggunakan
cd "$(dirname /path/to/file)"
sebelum menjalankan program dengan metode apa pun: Jika setidaknya ada satu yang benar, Anda tidak perlucd
terlebih dahulu.apt-get
)cd
(atau setara) untuk mengubah ke jalur absolut sebelum melakukan operasi file apa pun (contohcd "$(dirname "$0")"
:)./
atau dimulai tanpa garis miring)Jika tidak yakin, tambahkan
cd "$(dirname "$0")"
(atau setara) ke bagian atas skrip (jika ada) atau gunakancd "$(dirname /path/to/file)"
pula.sumber
Jika skrip shell, Anda dapat "sumber" dari skrip shell lain, yaitu:
"$ @" Menambahkan parameter baris perintah, jika perlu.
Karena itu, ini mungkin bukan solusi terbaik untuk masalah yang mendasarinya, tetapi kami tidak cukup tahu tentang masalah itu untuk menawarkan alternatif.
sumber
bash script $@