บทช่วยสอนนี้จะสอนคุณใช้คำสั่ง cp ของ Linux – คำสั่งที่คัดลอกไฟล์จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่ง
Linux เป็นแพลตฟอร์มที่นักพัฒนาหลายคนชอบ หากคุณใหม่กับ Linux จะไม่กี่วันก่อนที่คุณจะต้องเริ่มคัดลอกไฟล์จากที่หนึ่งไปอีกที่ – อ่านต่อเพื่อคำอธิบายของคำสั่ง cp ของ Linux และเคล็ดลับบางอย่างเกี่ยวกับวิธีใช้งาน
คำสั่ง cp
คำสั่ง cp มีวัตถุประสงค์ง่ายๆ – เพื่อคัดลอกไฟล์และโฟลเดอร์จากที่หนึ่งไปอีกที่
มันสามารถทำได้ข้ามระบบไฟล์ใดๆ ที่เชื่อมต่อกับระบบ Linux และจะรักษาไฟล์ต้นฉบับไว้ พร้อมให้ตัวเลือกในการเปลี่ยนชื่อและทับไฟล์ที่คัดลอก
ไวยากรณ์สำหรับคำสั่ง cp ตามหน้าคู่มือคือ:
cp [OPTIONS] SOURCE DESTINATION
ตัวเลือกของคำสั่ง cp
เมื่อใส่คำสั่งคัดลอก คุณจะสามารถระบุได้ว่าต้องการทำอะไรกับไฟล์ที่มีอยู่แล้ว และว่าจะรวมเนื้อหาไดเรกทอรีในการคัดลอกหรือไม่ นี่คือตัวเลือกที่ใช้บ่อย:
-b Backup (สำรองไฟล์ปลายทางแต่ละไฟล์)
-f Force (หากไฟล์ปลายทางที่มีอยู่ไม่สามารถเปิดได้ ให้ลบและลองใหม่)
-i Interactive (พรอมป์ตก่อนทับ)
-n No-clobber (อย่าทับไฟล์ที่มีอยู่)
-p Preserve (รักษา mode, ownership, timestamps)
-r Recursive (คัดลอกไดเรกทอรีและเนื้อหาของมัน)
-u Update (คัดลอกเฉพาะเมื่อไฟล์ SOURCE ใหม่กว่าไฟล์ปลายทาง หรือเมื่อไฟล์ปลายทางหายไป)
-v Verbose (อธิบายว่ากำลังทำอะไร)
ตัวอย่างคำสั่งสำหรับการคัดลอกไฟล์และไดเรกทอรีด้วย cp
คัดลอกไฟล์เดี่ยว
เพียงใส่คำสั่ง cp ตามด้วยเส้นทางของไฟล์ต้นทางและปลายทาง คั่นด้วยช่องว่างเดียว:
cp /path/to/source/file.txt /path/to/destination/file.txt
คัดลอกไดเรกทอรีและเนื้อหาของมัน
ใส่คำสั่ง cp ตามด้วยตัวเลือก -r (recursive) และเส้นทางของไดเรกทอรีต้นทางและปลายทาง คั่นด้วยช่องว่างเดียว ไดเรกทอรีต้นทางทั้งหมดจะถูกคัดลอกไปยังไดเรกทอรีปลายทาง พร้อมชื่อเดิม:
cp -r /path/to/source_directory /path/to/destination_directory
คัดลอกไฟล์หรือไดเรกทอรีหลายรายการ
เพื่อคัดลอกไฟล์หลายไฟล์ไปยังไดเรกทอรีปลายทาง ให้ระบุไฟล์ทั้งหมดคั่นด้วยช่องว่าง – เส้นทางสุดท้ายที่ให้จะถูกถือว่าเป็นปลายทาง:
cp source_file_1.txt source_file_2.txt path/to/destination_directory
คุณยังสามารถทำเช่นเดียวกันเมื่อคัดลอกไดเรกทอรีหลายไดเรกทอรี หากคุณส่งตัวเลือก -r (Recursive):
cp -r source_directory_1/ source_directory_2/ /path/to/destination_directory
เพื่อคัดลอกไฟล์และไดเรกทอรีทั้งหมดในไดเรกทอรีต้นทางไปยังไดเรกทอรีอื่น คุณสามารถใช้ wildcard (*):
cp -r /path/to/source/* /path/to/destination
คัดลอกไฟล์ที่มีชื่อไฟล์หรือนามสกุลเฉพาะ
คุณสามารถเพิ่ม filename mask เพื่อคัดลอกไฟล์ที่มีชื่อหรือนามสกุลตรงกันโดยใช้ wildcard (*) นี่คือวิธีคัดลอกไฟล์รูปภาพ 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
สรุป
การคัดลอกไฟล์เป็นงานประจำวันที่จำเป็น และไวยากรณ์จะกลายเป็นท coisas ที่คุ้นเคยเร็วมาก สำหรับงานบรรทัดคำสั่ง Linux อื่นๆ ที่พบบ่อย ดูบทความอื่นๆ ของเรา