İnstall -c'nin cp'den farkı nedir?


20

İnstall -c ve cp arasındaki fark nedir? Çoğu kurulum install -c kullanma eğilimindedir, ancak man sayfasından cp'den farklı bir şey yapıyormuş gibi gelmez (belki ayarlanmış izinler hariç). Ne zaman install -c ve ne zaman cp kullanmalıyım?

Yanıtlar:


18

Önemli bir fark, cp'nin hedef dosyayı kesmesi ve verileri kaynaktan hedef dosyaya kopyalamaya başlamasıdır.

install, diğer taraftan, önce hedef dosyayı kaldırır.

Bu önemlidir, çünkü hedef dosya zaten kullanılıyorsa, cpüstünde yeni bir dosya olması durumunda bu dosyayı kullanan herkesin başına kötü şeyler gelebilir . örneğin, çalışan bir yürütülebilir dosyanın üzerine yazmak başarısız olabilir. Varolan bir işlemin okuma / yazma işlemiyle meşgul olduğu bir veri dosyasının kesilmesi oldukça garip davranışlara neden olabilir. Önce hedef dosyayı kaldırırsanız, yükleme işlemi gibi, işler normal gibi devam eder - kaldırılan dosya aslında tüm işlemler o dosyayı kapatana kadar kaldırılmaz.


3
İyi cevap. Ancak bkz cp --remove-destination. GNU coreutils.
Peter Eisentraut

7

Teknik olarak, arasındaki fark install -cve cpolmasıdır installoluşturduğunun hedef dosyasının izinlerini rwxr-xr-x. cpumask eksi kaynak dosyasının izinlerini korur. Bu varsayılan davranışlar farklı durumlarda kullanışlıdır. Seçenekleri ile tüm Açıkçası, hem cpve installteklif günümüzde, işlevsellikleri birbirine yaklaştı.

Günümüzde, diğer her yerde installmakyaj malzemelerinde yaygın olarak kullanılmaktadır cp. Bazı işletim sistemleri veya kurulum sistemleri installkurulu paketleri kaydetmek için programa bağlanmanıza izin verdiği için bu ayrım bazen yararlıdır . Modern paket yönetim sistemleri bu türden eskimiş, ancak bazı insanlar hala kullanıyor. Ayrıca, aynı anda hedef dosya izinlerini ayarlama olasılığı çok uygundur.


4

installProgramı, tabanında, bir fantezi cp. Ancak, özellikle bir araç yüklerken, cpyapmayan birkaç özellik içerir . Benim /usr/bin/installGNU coreutils gelen sadece kopyalar, aynı zamanda arg bayrakları (kaydetme gibi Perma / sahipliğini değiştirebilir chgrp, chown, chmodinvokasyonlar) şerit ayıklama bilgi (bir tasarruf için bir seçenek stripçağırma) ve ayrıca SELinux'un bağlamlar için bazı güçlerin artık.

Yalnızca yazılım yüklemeleri için kullanışlı kolaylık eylemleri sağlar. Hiçbiri hayat değiştirmez, hepsi yararlıdır ve komut dosyalarınızı daha temiz hale getirir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.