ใช้ ditto เพื่อคัดลอกไฟล์ & ไดเรกทอรีอย่างชาญฉลาดจาก Mac Terminal
สารบัญ:
ผู้ใช้บรรทัดคำสั่งที่รู้จักกันมานานส่วนใหญ่จะพึ่งพาคำสั่ง cp เพื่อคัดลอกไฟล์และไดเร็กทอรี แต่ Mac OS X เสนอวิธีแก้ปัญหาอื่นด้วยคำสั่ง 'ditto' Ditto เป็นขั้นสูงกว่าเล็กน้อย แต่สามารถใช้ "cp" ได้ด้วยเหตุผลหลายประการ เนื่องจากไม่เพียงรักษาคุณสมบัติการเป็นเจ้าของและการอนุญาตเท่านั้น แต่ยังรวมถึงส้อมทรัพยากรไฟล์และข้อมูลเมตาของไฟล์และโฟลเดอร์ โดยหลักแล้วประกันว่าไฟล์และ/หรือโฟลเดอร์จะถูกคัดลอกมาอย่างแน่นอน
นอกจากนี้ สามารถใช้ ditto เพื่อคัดลอกไฟล์หรือโฟลเดอร์ไปยังไดเร็กทอรีต้นทางได้ แต่ถ้าแหล่งข้อมูลนั้นยังไม่มีอยู่ ditto จะสร้างโดยอัตโนมัติ นอกจากนี้ หากมีโฟลเดอร์ปลายทาง เนื้อหาที่คัดลอกจะถูกรวมเข้าด้วยกันในไดเร็กทอรีปลายทางนั้น สุดท้าย เหมือนกันตามลิงก์สัญลักษณ์ ทำให้สะดวกอย่างยิ่งหากคุณเป็นผู้ใช้คำสั่ง ln อย่างหนัก
เพื่อให้เข้าใจคำสั่ง ditto ได้ดียิ่งขึ้น มาดูตัวอย่างบางส่วนพร้อมไวยากรณ์จริง
การใช้ Ditto เพื่อคัดลอกไฟล์ / โฟลเดอร์
ในรูปแบบที่ง่ายที่สุด ditto ทำงานเหมือนกับคำสั่ง cp โดยมีไวยากรณ์พื้นฐานดังนี้
ต้นทางปลายทาง
ตัวอย่างเช่น หากคุณต้องการคัดลอก ~/Desktop/FluffyBackups ไปยัง /Volumes/FluffyBackups/ ให้คุณพิมพ์ดังต่อไปนี้:
ditto ~/Desktop/FluffyBackups /Volumes/FluffyBackups/
อีกครั้ง การดำเนินการนี้จะรักษาความเป็นเจ้าของและรายละเอียดข้อมูลเมตาของทรัพยากรทั้งหมดของไฟล์ที่คัดลอก ซึ่งอาจมีความสำคัญเป็นพิเศษหากคุณกำลังคัดลอกไฟล์จากไดเร็กทอรีผู้ใช้หนึ่งไปยังอีกไดเร็กทอรีหนึ่ง หรือหากคุณต้องการเก็บรักษาข้อมูลบางอย่าง เช่น เวลาแก้ไขไฟล์
หากคุณไม่แน่ใจเกี่ยวกับเนื้อหาต้นทางและปลายทาง คุณสามารถเปรียบเทียบทั้งสองรายการด้วยคำสั่ง com หรือคำสั่ง diff ก่อนดำเนินการต่อด้วยคำสั่ง ditto
การใช้ Ditto เพื่อรวมไดเร็กทอรีและเนื้อหาโฟลเดอร์
จำไว้ เหมือนกันจะตรวจสอบว่าปลายทางมีอยู่แล้วหรือไม่ และหากมีก็จะรวมไดเร็กทอรีของต้นทางไปยังปลายทาง นี่เป็นสิ่งสำคัญและมีประโยชน์อย่างยิ่ง ทำให้เป็นวิธีที่ง่ายที่สุดวิธีหนึ่งในการรวมไดเร็กทอรีจากบรรทัดคำสั่งใน Mac OS X (แม้ว่าตอนนี้จะทำได้ง่ายใน Finder แล้วก็ตาม)
ditto ~/Pictures/Fall2015/ /Volumes/PhotoBackup/2015/
การดำเนินการนี้จะถ่ายภาพทั้งหมดจาก "Fall2015" และคัดลอกลงในไดเร็กทอรีที่มีอยู่ก่อน "2015" ซึ่งรวมเนื้อหาจากต้นทางไปยังปลายทางได้อย่างมีประสิทธิภาพ อีกครั้ง ลักษณะการผสานเกิดขึ้นเมื่อปลายทางมีอยู่แล้ว ถ้าปลายทางไม่มีอยู่ ปลายทางจะถูกสร้างตามที่ระบุ หรือเป็นชื่อต้นทาง
หากคุณใช้ ditto เพื่อคัดลอกข้อมูลจากไดเร็กทอรีที่มีลิงก์สัญลักษณ์ การใช้แฟล็ก -V (แบบละเอียดทั้งหมด) จะมีประโยชน์เพราะจะแสดงทุกไฟล์และลิงก์สัญลักษณ์ที่ถูกคัดลอก หมายเหตุ -V แตกต่างจาก -v ซึ่งจะแสดงเฉพาะไฟล์เป็นเอาต์พุต ไม่ใช่ลิงก์สัญลักษณ์
คัดลอกโดยไม่ใช้ข้อมูลเมตาโดยใช้ Ditto
หากคุณไม่ต้องการคัดลอกข้อมูลเมตาและทรัพยากรด้วยเหตุผลบางอย่าง คุณสามารถใช้แฟล็ก –norsrc ดังนี้:
ditto -V --norsrc ~/Sample/Folder /Volumes/NoMetadataBackups
การใช้ –norsrc แฟล็กชนิดเอาชนะผลประโยชน์หลักของเหมือนกัน แต่อาจมีประโยชน์ในบางกรณี
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง ditto ที่ยอดเยี่ยมได้โดยอ่านหน้าคู่มือ ซึ่งเข้าถึงได้ใน Mac OS X โดยพิมพ์:
ผู้ชายเหมือนกัน
ตามปกติ ใช้ปุ่มลูกศรเพื่อเลื่อนขึ้นและลงในหน้าคู่มือ
ก่อนที่คุณจะพึ่งพา Ditto อย่างหนัก อย่าลืมลองใช้การย้ายไฟล์และการรวมไดเร็กทอรีที่ไม่สำคัญสักสองสามครั้ง เพื่อทำความเข้าใจว่ามันทำงานอย่างไรกับการใช้งานตามแผนของคุณ