ใช้ Ditto เพื่อคัดลอกไฟล์และไดเรกทอรีอย่างชาญฉลาดจาก Mac Terminal

ผู้ใช้บรรทัดคำสั่งที่ยาวนานที่สุดต้องพึ่งพาคำสั่ง cp ในการคัดลอกไฟล์และไดเร็กทอรี แต่ Mac OS X นำเสนอโซลูชันอื่นที่มีคำสั่ง 'ditto' Ditto สูงกว่าเล็กน้อย แต่อาจเป็นประโยชน์กับ 'cp' ด้วยเหตุผลหลายประการเนื่องจากไม่เพียงรักษาคุณลักษณะและสิทธิ์ในการเป็นเจ้าของเท่านั้น แต่ยังรวมถึงไฟล์ข้อมูลส้อมและไฟล์ข้อมูลและเมตาดาต้าโฟลเดอร์ซึ่งเป็นหลักประกันว่าไฟล์และ / หรือโฟลเดอร์จะถูกคัดลอกไว้ นอกจากนี้สามารถใช้เพื่อคัดลอกไฟล์หรือโฟลเดอร์ไปยังไดเร็กทอรีต้นทาง แต่ถ้ายังไม่มีแหล่งที่มาดังกล่าวก็จะสร้างขึ้นเอง นอกจากนี้หากโฟลเดอร์ปลายทางมีอยู่เนื้อหาที่คัดลอกจะรวมเข้าด้วยกันในไดเร็กทอรีปลายทางนั้น สุดท้ายนี้ยังมีการเชื่อมโยงสัญลักษณ์ทำให้มีประโยชน์โดยเฉพาะอย่างยิ่งถ้าคุณเป็นผู้ใช้งานคำสั่ง ln อย่างหนัก

เพื่อทำความเข้าใจคำสั่ง ditto ให้ดียิ่งขึ้นลองมาดูตัวอย่างบางส่วนด้วยไวยากรณ์จริง

ใช้ Ditto เพื่อคัดลอกไฟล์ / โฟลเดอร์

ที่เป็นรูปแบบที่ง่ายที่สุด ditto ทำงานมากเช่นคำสั่ง cp กับไวยากรณ์พื้นฐานดังนี้:

ditto source destination

ตัวอย่างเช่นถ้าคุณต้องการคัดลอก ~ / เดสก์ท็อป / FluffyBackups ไป / Volumes / FluffyBackups / คุณจะพิมพ์ข้อมูลต่อไปนี้:

ditto ~/Desktop/FluffyBackups /Volumes/FluffyBackups/

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

หากคุณไม่แน่ใจเกี่ยวกับเนื้อหาต้นฉบับและปลายทางคุณสามารถเปรียบเทียบทั้งสองแบบด้วยคำสั่ง comm หรือคำสั่ง diff ก่อนที่จะดำเนินการกับคำสั่ง ditto

ใช้ Ditto เพื่อรวมไดเรกทอรีและเนื้อหาโฟลเดอร์

จำไว้ว่าจะตรวจสอบเพื่อดูว่าปลายทางนั้นมีอยู่แล้วหรือไม่และจะรวมไดเรกทอรีต่างๆของแหล่งที่มากับปลายทางด้วย นี่เป็นสิ่งสำคัญและเป็นประโยชน์อย่างมากทำให้เป็นหนึ่งในวิธีที่ง่ายที่สุดในการผสานไดเรกทอรีจากบรรทัดคำสั่งใน OS X (แม้ว่าจะเป็นเรื่องง่ายใน Finder ด้วย)

ditto ~/Pictures/Fall2015/ /Volumes/PhotoBackup/2015/

ภาพนี้จะถ่ายภาพทั้งหมดจาก "Fall2015" และคัดลอกภาพเหล่านี้ลงในไดเร็กทอรี "2015" ที่มีอยู่ก่อนแล้วโดยรวมเนื้อหาจากแหล่งที่มาไปยังจุดหมายปลายทางอย่างมีประสิทธิภาพ อีกครั้งพฤติกรรมการผสานเกิดขึ้นเมื่อปลายทางมีอยู่แล้วถ้าปลายทางไม่มีอยู่จะถูกสร้างตามที่ระบุหรือเป็นชื่อต้นทาง

ถ้าคุณกำลังใช้สำเนาเพื่อคัดลอกข้อมูลจากไดเร็กทอรีที่มีการเชื่อมโยงสัญลักษณ์โดยใช้ธง -V (verbose all) ทั้งหมดเป็นสิ่งที่มีค่าเพราะจะแสดงไฟล์และลิงค์สัญลักษณ์ทั้งหมดที่ถูกคัดลอก หมายเหตุ -V จะแตกต่างจาก -v ซึ่งจะแสดงเฉพาะไฟล์ที่เป็นเอาท์พุทเท่านั้นไม่ใช่ลิงก์สัญลักษณ์

คัดลอกโดยปราศจากข้อมูลเมตาโดยใช้ Ditto

ถ้าด้วยเหตุผลบางอย่างที่คุณไม่ต้องการคัดลอกข้อมูลเมตาและส้อมทรัพยากร youc ใช้ flag -norsrc:

ditto -V --norsrc ~/Sample/Folder /Volumes/NoMetadataBackups

การใช้ค่าสถานะ -norsrc flag ของการเอาชนะประโยชน์หลักของ ditto แต่อาจเป็นประโยชน์สำหรับบางกรณี

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง ditto ที่ยอดเยี่ยมได้โดยการอ่านหน้าคู่มือที่เข้าถึงได้ใน OS X โดยพิมพ์:

man ditto

ตามปกติให้ใช้ปุ่มลูกศรเพื่อเลื่อนขึ้นและลงในหน้าคู่มือ

ก่อนที่คุณจะพึ่งพามากให้แน่ใจว่าได้ลองออกมาสองสามครั้งด้วยการย้ายไฟล์ที่ไม่สำคัญและการรวมไดเรกทอรีเพื่อทำความเข้าใจกับการใช้งานตามแผนของคุณ