install
tidak hanya menyalin file tetapi juga mengubah kepemilikan dan izinnya dan secara opsional menghapus simbol debug dari executable. Menggabungkan cp
dengan chown
, chmod
dan strip
. Ini adalah alat tingkat tinggi yang nyaman untuk mencapai urutan umum dari tugas-tugas dasar.
Keuntungan install
lebih cp
untuk menginstal executable adalah bahwa jika target sudah ada, itu menghapus file target dan membuat yang baru. Ini menghilangkan semua properti saat ini seperti daftar kontrol akses dan kemampuan, yang dapat dilihat sebagai sisi atas maupun sisi bawah. Saat memperbarui yang dapat dieksekusi, jika ada contoh yang dapat dijalankan yang dapat dijalankan, mereka tetap berjalan tidak terpengaruh. Sebaliknya, cp
perbarui file pada tempatnya jika ada. Pada sebagian besar varian Unix, ini gagal dengan kesalahan EBUSY¹ jika targetnya adalah executable yang berjalan; pada beberapa hal itu dapat menyebabkan target mogok karena memuat bagian kode secara dinamis dan memodifikasi file menyebabkan kode tidak masuk akal dimuat.
install
adalah perintah BSD (ditambahkan pada 4.2BSD , yaitu pada awal 1980-an). Itu belum diadopsi oleh POSIX.
¹ "File teks sibuk". Dalam konteks ini, "file teks" berarti "file biner yang dapat dieksekusi", karena alasan historis yang tidak jelas .
Gilles 'SANGAT berhenti menjadi jahat'
sumber
rm
bersamacp
. Ini berarti dapat menimpa file yang sedang digunakan dengan memutuskan tautannya (rm
) terlebih dahulu.cp
sendiri akan memberikan kesalahan.Ini memberikan cara standar memanipulasi kepemilikan dan izin file atau direktori saat menyalin file atau membuat direktori, dalam satu perintah.
sumber
install
apakah salinan diikuti oleh chown dan chmod, semua syscall terpisah, dan tidak menggunakan rename-to-place (setidaknya pada coreutils 8.13 versi GNU tidak). Jika Anda menganggap semua itu terjadi secara atomis, Anda mungkin akan terkejut.Dengan
install
perintah, kita dapat menyalin file dengan izin keinginanContoh yang banyak digunakan saat mengatur ldap
Ini menyelamatkan kami dari melakukan
chown ldap. /var/lib/ldap/DB_CONFIG
, jika Anda menyalin menggunakancp
maka Anda juga perluchown
dalam skenario inisumber
Lihat halaman manual untuk
install
:kutipan
Hal-hal berguna lainnya seperti menginstal dengan kepemilikan khusus, izin, dan menjaga cap waktu file asli juga dapat dicapai melalui penggunaan
install
.Referensi
sumber
install
, bukan hanya mempertahankan izin yang adacp