Bagaimana menginstal -c berbeda dari cp


20

Apa perbedaan antara install -c dan cp? Sebagian besar instalasi cenderung menggunakan install -c, tetapi dari halaman manual itu tidak terdengar seperti itu melakukan sesuatu yang berbeda dari cp (kecuali mungkin mengatur izin). Kapan saya harus menggunakan install -c dan kapan cp?

Jawaban:


18

Satu perbedaan signifikan adalah bahwa cp memotong file tujuan dan mulai menyalin data dari sumber ke file tujuan.

instal, di sisi lain, hapus file tujuan terlebih dahulu.

Ini penting karena jika file tujuan sudah digunakan, hal-hal buruk dapat terjadi pada siapa pun yang menggunakan file itu jika Anda cpmemiliki file baru di atasnya. misalnya menimpa yang dapat dieksekusi yang sedang berjalan mungkin gagal. Memotong file data yang prosesnya sedang sibuk membaca / menulis dapat menyebabkan perilaku yang cukup aneh. Jika Anda hanya menghapus file tujuan terlebih dahulu, seperti instal, hal-hal berlanjut seperti biasa - file yang dihapus tidak benar-benar dihapus sampai semua proses menutup file itu.


3
Jawaban yang bagus. Tetapi lihat juga cp --remove-destinationdi GNU coreutils.
Peter Eisentraut

7

Secara teknis, perbedaan antara install -cdan cpadalah yang installmengatur izin file target rwxr-xr-x. cpmempertahankan izin file sumber minus umask. Perilaku default ini berguna dalam situasi yang berbeda. Tentunya, dengan semua opsi yang ditawarkan cpdan installditawarkan saat ini, fungsionalitasnya telah bertemu.

Saat ini, installumumnya digunakan dalam makefiles, di cptempat lain. Perbedaan ini kadang-kadang berguna karena beberapa sistem operasi atau sistem instalasi memungkinkan Anda untuk terhubung ke installprogram untuk mendaftarkan paket yang diinstal. Sistem manajemen paket modern membuat ini usang, tetapi beberapa orang masih menggunakannya. Juga, kemungkinan untuk mengatur izin file target di jalan yang sama sangat nyaman.


4

The installutilitas, pada dasarnya, adalah mewah cp. Tetapi sebagai alat yang khusus menginstalnya, ini berisi beberapa fitur yang cptidak. Saya /usr/bin/installdari coreutils GNU tidak hanya salinan, tetapi juga dapat mengubah perms / kepemilikan sebagai bendera arg (tabungan chgrp, chown, chmoddoa) pilihan ke info jalur debug (menyimpan stripdoa) dan juga beberapa mojo untuk konteks SELinux.

Itu hanya memberikan tindakan kenyamanan yang berguna untuk menginstal perangkat lunak. Tidak ada yang mengubah hidup, semua berguna, dan membuat skrip Anda lebih bersih.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.