การติดตั้ง -c แตกต่างจาก cp อย่างไร


20

ความแตกต่างระหว่างการติดตั้ง -c และ cp คืออะไร? การติดตั้งส่วนใหญ่มักจะใช้การติดตั้ง -c แต่จากหน้าคนมันไม่ได้ดูเหมือนว่ามันจะทำอะไรที่แตกต่างจาก cp (ยกเว้นอาจตั้งค่าสิทธิ์) เมื่อใดที่ฉันควรใช้ install -c และ cp เมื่อใด

คำตอบ:


18

ข้อแตกต่างที่สำคัญอย่างหนึ่งคือ cp จะตัดทอนไฟล์ปลายทางและเริ่มคัดลอกข้อมูลจากแหล่งข้อมูลลงในไฟล์ปลายทาง

ในทางกลับกันการติดตั้งจะลบไฟล์ปลายทางก่อน

สิ่งนี้มีความสำคัญเนื่องจากหากไฟล์ปลายทางถูกใช้งานแล้วสิ่งที่ไม่ดีอาจเกิดขึ้นกับผู้ใช้กำลังใช้ไฟล์นั้นในกรณีที่คุณcpมีไฟล์ใหม่อยู่ด้านบน เช่นการเขียนทับปฏิบัติการที่กำลังทำงานอยู่อาจล้มเหลว การตัดทอนไฟล์ข้อมูลที่กระบวนการที่มีอยู่กำลังยุ่งอยู่กับการอ่าน / เขียนอาจทำให้เกิดพฤติกรรมแปลก ๆ หากคุณเพิ่งลบไฟล์ปลายทางก่อนเช่นเดียวกับการติดตั้งสิ่งต่างๆจะดำเนินต่อไปตามปกติ - ไฟล์ที่ถูกลบจะไม่ถูกลบออกจริง ๆ จนกว่ากระบวนการทั้งหมดจะปิดไฟล์นั้น


3
คำตอบที่ดี. แต่เห็นcp --remove-destinationใน coreutils GNU
Peter Eisentraut

7

เทคนิค, ความแตกต่างระหว่างinstall -cและcpเป็นที่ชุดสิทธิ์ของไฟล์เป้าหมายไปยัง install สงวนสิทธิ์ของไฟล์ต้นฉบับลบ umask พฤติกรรมเริ่มต้นเหล่านี้มีประโยชน์ในสถานการณ์ต่าง ๆ เห็นได้ชัดว่าด้วยตัวเลือกทั้งหมดที่ทั้งสองและเสนอในปัจจุบันฟังก์ชันได้แปรสภาพrwxr-xr-xcpcpinstall

ปัจจุบันinstallมีการใช้กันอย่างแพร่หลายใน makefiles cpทุกที่อื่น ความแตกต่างนี้มีประโยชน์ในบางครั้งเนื่องจากระบบปฏิบัติการหรือระบบติดตั้งบางตัวอนุญาตให้คุณเชื่อมต่อเข้ากับinstallโปรแกรมเพื่อลงทะเบียนแพ็คเกจที่ติดตั้ง ระบบการจัดการบรรจุภัณฑ์ที่ทันสมัยทำให้สิ่งนี้ล้าสมัย แต่บางคนยังคงใช้มันอยู่ นอกจากนี้ความเป็นไปได้ในการตั้งค่าการอนุญาตไฟล์เป้าหมายในเวลาเดียวกันก็สะดวกมาก


4

ยูทิลิตี้ที่ฐานของมันเป็นแฟนซีinstall cpแต่เป็นเครื่องมือติดตั้งโดยเฉพาะมันมีคุณสมบัติบางอย่างที่cpไม่ได้ ของฉัน/usr/bin/installจาก coreutils GNU ไม่เพียงสำเนา แต่ยังสามารถเปลี่ยน perms / เป็นเจ้าของธงหาเรื่อง (ประหยัดchgrp, chown, chmodสวด) ตัวเลือกในการแก้ปัญหาแถบข้อมูล (ประหยัดstripภาวนา) และโมโจบางอย่างสำหรับบริบท SELinux

มันให้ความสะดวกที่เป็นประโยชน์สำหรับการติดตั้งซอฟต์แวร์ ไม่มีการเปลี่ยนแปลงชีวิตทุกอย่างมีประโยชน์และทำให้สคริปต์ของคุณสะอาดขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.