ผู้เขียน: phunsanit

Linux: cp (copy file )Linux: cp (copy file )

cp คือคำสั่งพื้นฐานใน Linux สำหรับคัดลอกไฟล์และไดเรกทอรี จากตำแหน่งหนึ่งไปยังอีกตำแหน่งหนึ่ง



รูปแบบคำสั่ง

cp [OPTIONS] SOURCE DESTINATION



ตัวอย่างการใช้งานพื้นฐาน



คัดลอกไฟล์ไปยังไดเรกทอรีอื่น

cp file.txt /home/user/Documents/



คัดลอกและตั้งชื่อใหม่

cp file.txt file_backup.txt


คัดลอกและตั้งชื่อใหม่

cp file.txt file_backup.txt


คัดลอกหลายไฟล์พร้อมกัน

cp file1.txt file2.txt file3.txt /destination/



Options ที่ใช้บ่อย

Option ย่อ ความหมาย
–recursive -r หรือ -R คัดลอกไดเรกทอรีพร้อมเนื้อหาทั้งหมด
–interactive -i ถามก่อนทับไฟล์ที่มีอยู่
–force -f ทับไฟล์โดยไม่ถาม
–verbose -v แสดงรายละเอียดขณะคัดลอก
–preserve -p รักษา permission, timestamp, ownership เดิม
–update -u คัดลอกเฉพาะไฟล์ที่ใหม่กว่าปลายทาง
–backup -b สำรองไฟล์ก่อนทับ
–no-clobber -n ไม่ทับไฟล์ที่มีอยู่


ตัวอย่าง Options ต่าง ๆ



คัดลอกทั้งโฟลเดอร์

cp -r /var/www/html/ /backup/html/



คัดลอกพร้อมแสดงความคืบหน้า

cp -rv /source/ /destination/



คัดลอกโดยถามก่อนทับไฟล์

cp -i config.conf /etc/app/config.conf



คัดลอกพร้อมรักษา permission เดิม

cp -p script.sh /usr/local/bin/



คัดลอกเฉพาะไฟล์ที่ใหม่กว่า

cp -u *.log /backup/logs/



สำรองไฟล์เดิมก่อนทับ

cp -b important.conf /etc/important.conf
สร้าง important.conf~ เป็นไฟล์สำรองอัตโนมัติ



การใช้ Wildcard ร่วมกับ cp



คัดลอกทุกไฟล์ .txt

cp *.txt /backup/



คัดลอกทุกไฟล์ที่ขึ้นต้นด้วย log

cp log* /var/archive/



คัดลอกทุกไฟล์ในโฟลเดอร์

cp /source/* /destination/



ข้อควรระวัง

ความแตกต่างระหว่าง -r กับ -R — ทำงานเหมือนกัน ใช้แทนกันได้ ปลายทางคือโฟลเดอร์หรือไฟล์ ?

cp file.txt mydir/ # → คัดลอกเป็น mydir/file.txt
cp file.txt mydir/new.txt # → คัดลอกและตั้งชื่อใหม่เป็น new.txt

ระวังการทับไฟล์ — แนะนำใช้ -i เมื่อไม่แน่ใจ เพื่อป้องกันข้อมูลสูญหาย



สรุป

cp เป็นคำสั่งที่ใช้งานง่ายแต่ทรงพลัง ควรจำ options หลักไว้ดังนี้

  • -r สำหรับคัดลอกโฟลเดอร์
  • -i ถามก่อนทับไฟล์ที่มีอยู่ สำหรับความปลอดภัย
  • -p สำหรับรักษาคุณสมบัติไฟล์เดิม
  • -v สำหรับดูความคืบหน้า

อ่านเพิ่มเติม