หากฉันคัดลอกไฟล์จากที่หนึ่งไปยังอีกที่หนึ่งโดยใช้cp
การประทับเวลาในไฟล์ที่คัดลอกจะถูกตั้งค่าเป็นเวลาของการคัดลอก
มีวิธีหลีกเลี่ยงปัญหานี้ไหม?
ฉันต้องการคัดลอกไฟล์โดยไม่เปลี่ยนเวลาบันทึก
หากฉันคัดลอกไฟล์จากที่หนึ่งไปยังอีกที่หนึ่งโดยใช้cp
การประทับเวลาในไฟล์ที่คัดลอกจะถูกตั้งค่าเป็นเวลาของการคัดลอก
มีวิธีหลีกเลี่ยงปัญหานี้ไหม?
ฉันต้องการคัดลอกไฟล์โดยไม่เปลี่ยนเวลาบันทึก
คำตอบ:
cp -p
ไม่หลอกลวง สำหรับ Linux :
-p
เหมือนกับ--preserve=mode,ownership,timestamps
-p
ทำให้ cp รักษาคุณสมบัติต่อไปนี้ของไฟล์ต้นฉบับแต่ละไฟล์ในเวลาคัดลอก: เวลาในการแก้ไข, เวลาในการเข้าถึง, แฟล็กไฟล์, โหมดไฟล์, ACL, ID ผู้ใช้และ ID กลุ่มตามที่ได้รับอนุญาต
และสำหรับ OS X :
-p
ทำให้ cp เพื่อรักษาคุณลักษณะต่อไปนี้ของไฟล์ต้นฉบับแต่ละไฟล์ไว้ในการคัดลอก: เวลาแก้ไข, เวลาในการเข้าถึง, แฟล็กไฟล์, โหมดไฟล์, ID ผู้ใช้และ ID กลุ่มตามที่ได้รับอนุญาตจากสิทธิ์ รายการควบคุมการเข้าถึง (ACLs) และคุณสมบัติเพิ่มเติม (EAs) รวมถึงส้อมทรัพยากรก็จะถูกรักษาไว้เช่นกัน
cp -p
ไม่เพียง แต่รักษาเวลาประทับ แต่ยังโหมดและความเป็นเจ้าของและในFreeBSDนอกเหนือจากเวลาการปรับเปลี่ยนมันยังรักษา»เวลาการเข้าถึงธงไฟล์โหมดไฟล์ ACL, ID ผู้ใช้และ ID กลุ่มตามที่ได้รับอนุญาต ตามการอนุญาต«และบนOS Xเพิ่มเติม»คุณสมบัติเพิ่มเติมรวมถึงส้อมทรัพยากร«
เมื่อใช้cp
จากGNU Coreutilsเพื่อเก็บรักษาเฉพาะการประทับเวลาและไม่ใช่แอตทริบิวต์เช่น id ผู้ใช้, id กลุ่มหรือโหมดไฟล์มีระยะยาว--preserve
ที่อนุญาตให้ระบุรายการของคุณสมบัติที่จะรักษาไว้อย่างชัดเจน
cp --preserve=timestamps source destination
โปรดระวังว่าไวยากรณ์นี้อาจไม่รองรับใน Unices อื่น ๆ อีกทางเลือกหนึ่งคือใช้--times
พารามิเตอร์rsync
ที่ควรมีอยู่ในการติดตั้งส่วนใหญ่
-p
ไม่ใช่คำตอบที่ถูกต้อง -p
ยังคงความเป็นเจ้าของ & โหมดด้วย ซึ่งอาจไม่เป็นที่ต้องการ .. และไม่ได้ถูกถามด้วยคำถาม
มีสามครั้งในระบบไฟล์ Unix เวลาเข้าถึง (atime) เวลาแก้ไข (mtime) และเวลาเปลี่ยน inode (ctime) คุณสามารถเปลี่ยนเวลาการเข้าถึงและเวลาการแก้ไขด้วยโปรแกรมสัมผัสตัวอย่างเช่น
cp orig copy สัมผัส -r orig copy
อย่างไรก็ตามคุณไม่สามารถเปลี่ยนเวลาเปลี่ยน inode ได้
ฉันเพิ่งต้องการทำสิ่งที่คล้ายกัน แต่ใช้ symlink แทน ในการสร้าง symlink และรักษาเวลาประทับดั้งเดิม:cp -ps src_file dst_symlink