ป้ายกำกับ: Interactive

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

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


รูปแบบคำสั่ง ( Syntax )

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 ต่าง ๆ


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

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/


คัดลอกเฉพาะไฟล์ที่ใหม่กว่า ( sync แบบง่าย )

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 สำหรับดูความคืบหน้า

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