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สำหรับดูความคืบหน้า
อ่านเพิ่มเติม
