บทแนะนำนี้จะสอนให้คุณใช้ Linux cp command – คำสั่งที่คัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังไดเร็กทอรีอื่น
Linux เป็นแพลตฟอร์มที่ต้องการสำหรับนักพัฒนาจำนวนมาก หากคุณเพิ่งเริ่มใช้ Linux จะใช้เวลาไม่นานก่อนที่คุณจะต้องเริ่มคัดลอกไฟล์จากที่หนึ่งไปยังอีกที่หนึ่ง – อ่านคำอธิบายของ Linux cp คำสั่งและคำแนะนำในการใช้งาน
cp คำสั่ง
ที่ cp คำสั่งมีวัตถุประสงค์ง่ายๆ คือ เพื่อคัดลอกไฟล์และโฟลเดอร์จากที่หนึ่งไปยังอีกที่หนึ่ง
ซึ่งสามารถทำได้กับระบบไฟล์ใดๆ ที่เชื่อมต่อกับระบบ Linux และจะเก็บไฟล์ต้นฉบับไว้พร้อมทั้งให้ตัวเลือกในการเปลี่ยนชื่อและเขียนทับไฟล์ที่คัดลอก
ไวยากรณ์สำหรับ cp คำสั่งตามคู่มือหน้าคือ:
cp [OPTIONS] SOURCE DESTINATION
cp ตัวเลือกคำสั่ง
เมื่อป้อนคำสั่งคัดลอก คุณจะสามารถระบุสิ่งที่คุณต้องการให้ทำกับไฟล์ที่มีอยู่แล้ว และกำหนดว่าจะรวมเนื้อหาไดเร็กทอรีไว้ในสำเนาหรือไม่ ต่อไปนี้คือตัวเลือกที่ใช้กันทั่วไป:
-b สำรองข้อมูล (สำรองไฟล์ปลายทางแต่ละไฟล์)
-f บังคับ (หากไม่สามารถเปิดไฟล์ปลายทางที่มีอยู่ ให้ลบออกแล้วลองอีกครั้ง)
-i โต้ตอบ (แจ้งก่อนเขียนทับ)
-n No-clobber (อย่าเขียนทับไฟล์ที่มีอยู่)
-p สงวน (โหมดคงไว้, ความเป็นเจ้าของ, การประทับเวลา)
-r เรียกซ้ำ (คัดลอกไดเรกทอรีและเนื้อหา)
-u อัปเดต (คัดลอกเฉพาะเมื่อไฟล์ SOURCE ใหม่กว่าไฟล์ปลายทางหรือเมื่อไฟล์ปลายทางหายไป)
-v ละเอียด (อธิบายสิ่งที่กำลังทำ)
ตัวอย่างคำสั่งสำหรับการคัดลอกไฟล์และไดเรกทอรีโดยใช้ cp
การคัดลอกไฟล์เดียว
เพียงป้อนคำสั่ง cp ตามด้วยเส้นทางของไฟล์ต้นทางและปลายทาง โดยคั่นด้วยช่องว่างเดียว:
cp /path/to/source/file.txt /path/to/destination/file.txt
การคัดลอกไดเรกทอรีและเนื้อหา
ป้อนคำสั่ง cp ตามด้วยอ็อพชัน -r (แบบเรียกซ้ำ) และพาธของไดเร็กทอรีต้นทางและปลายทาง โดยคั่นด้วยช่องว่างเดียว ไดเรกทอรีต้นทางทั้งหมดจะถูกคัดลอกไปยังไดเรกทอรีปลายทางด้วยชื่อเดิม:
cp -r /path/to/source_directory /path/to/destination_directory
การคัดลอกไฟล์หรือไดเรกทอรีหลายรายการ
ในการคัดลอกไฟล์หลายไฟล์ไปยังไดเร็กทอรีปลายทาง ให้ระบุไฟล์ทั้งหมดโดยคั่นด้วยช่องว่าง – เส้นทางสุดท้ายที่กำหนดจะถือเป็นปลายทาง:
cp source_file_1.txt source_file_2.txt path/to/destination_directory
คุณยังสามารถทำเช่นเดียวกันนี้เมื่อคัดลอกหลายไดเร็กทอรีหากคุณผ่าน -r (เรียกซ้ำ) ตัวเลือก:
cp -r source_directory_1/ source_directory_2/ /path/to/destination_directory
ในการคัดลอกไฟล์และไดเร็กทอรีทั้งหมดในไดเร็กทอรีต้นทางไปยังไดเร็กทอรีอื่น คุณสามารถใช้ไวด์การ์ด (*):
cp -r /path/to/source/* /path/to/destination
การคัดลอกไฟล์ด้วยชื่อไฟล์หรือนามสกุล
คุณสามารถเพิ่มมาสก์ชื่อไฟล์เพื่อคัดลอกไฟล์ที่มีชื่อหรือนามสกุลตรงกันโดยใช้สัญลักษณ์แทน (* ). ต่อไปนี้เป็นวิธีคัดลอกรูปภาพ JPG ทุกรูปจากไดเรกทอรีต้นทางไปยังไดเรกทอรีปลายทาง:
cp /path/to/source/*.jpg path/to/source/*.JPG /path/to/destination_directory
กำลังคัดลอกไฟล์ symlink
ไฟล์ Symlink เป็นไฟล์ที่ไม่มีข้อมูลและเป็นเพียงการอ้างอิงไปยังไฟล์อื่นบนดิสก์ โดยค่าเริ่มต้นจะถูกยกเว้นเมื่อใช้ cp สั่งการ. หากต้องการรวมไว้ ให้ใช้ -d ตัวเลือก:
cp –d source_file_1.txt /path/to/destination_directory
คัดลอกเฉพาะไฟล์ที่มีอายุน้อยกว่า 7 วัน
คุณสามารถรวม cp . ได้ คำสั่งกับคำสั่งอื่นๆ เพื่อควบคุมสิ่งที่คุณกำลังคัดลอกได้มากขึ้น ตัวอย่างนี้จะคัดลอกเท่านั้น ไฟล์ที่อายุน้อยกว่า 7 วัน โดยการกรองโดยใช้ find คำสั่ง แล้วดำเนินการ cp คำสั่ง:
find /path/to/files* -mtime -7 -exec cp {} /mnt/nas/ \;
การดูผลลัพธ์ของสำเนาของคุณ
คุณสามารถดูเนื้อหาของไดเรกทอรีปลายทางได้โดยใช้ ls คำสั่ง:
ls -hl /path/to/destination_directory
บทสรุป
การคัดลอกไฟล์เป็นงานประจำวันที่จำเป็น และไวยากรณ์จะกลายเป็นลักษณะที่สองของคุณอย่างรวดเร็ว สำหรับงานบรรทัดคำสั่งทั่วไปอื่นๆ ของ Linux โปรดดูบทความอื่นๆ ของเรา