การคัดลอกและวาง (Copy & Paste) เป็นการกระทำที่ใช้บ่อยที่สุดบนคอมพิวเตอร์ แม้จะทำได้ง่ายด้วยลัด Ctrl+C และ Ctrl+V แต่ใน Linux Terminal ไม่ได้ตรงไปตรงมาเช่นนั้น มีหลายวิธีในการทำ บทความนี้จะแนะนำวิธีคัดลอกและวางข้อความ ไฟล์ และไดเรกทอรีใน Terminal
คัดลอกและวางข้อความ
หากต้องการคัดลอกข้อความใน Terminal เพียงไฮไลท์ข้อความด้วยเมาส์ แล้วกด Ctrl+Shift+C เพื่อคัดลอก
เพื่อวางที่ตำแหน่งเคอร์เซอร์ ใช้ Ctrl+Shift+V
ลัด Paste นี้ใช้ได้เมื่อคัดลอกข้อความจากโปรแกรมอื่น (เช่น Word, เว็บเบราว์เซอร์) มาวางใน Terminal เช่น คัดลอกคำสั่งจากเว็บไซต์มาวางใน Terminal ด้วย Ctrl+Shift+V
คัดลอกและวางไฟล์เดี่ยว
ตอนคัดลอกไฟล์หรือโฟลเดอร์ในบรรทัดคำสั่ง ลัดคีย์บอร์ดข้างต้นจะไม่ทำงาน ต้องใช้คำสั่ง cp (ย่อมาจาก copy) ไวยากรณ์ง่ายมาก: cp ตามด้วยไฟล์ที่ต้องการคัดลอก และปลายทาง
cp your-file.txt ~/Documents/
สมมติไฟล์อยู่ในไดเรกทอรีปัจจุบัน สามารถระบุพาธเต็มได้:
cp ~/Downloads/your-file.txt ~/Documents/
ยังสามารถเปลี่ยนชื่อไฟล์ขณะคัดลอกได้ โดยระบุชื่อใหม่ในปลายทาง:
cp ~/Downloads/your-file.txt ~/Documents/new-name.txt
คัดลอกและวางโฟลเดอร์พร้อมเนื้อหา
เพื่อคัดลอกโฟลเดอร์และไฟล์ภายใน ต้องบอก cp ให้คัดลอกแบบ recursive (ซ้ำลึก) ด้วยแฟล็ก -r
cp -r ~/Downloads/pictures-directory ~/Pictures/family-vacation-pics
ไวยากรณ์อื่นๆ เหมือนเดิม แฟล็ก -r บอกว่าเป็นโฟลเดอร์และต้องคัดลอกเนื้อหาด้วย
หากต้องการให้ทับไฟล์ที่มีอยู่แล้ว เพิ่มแฟล็ก -f:
cp -rf ~/Downloads/pictures-directory ~/Pictures/family-vacation-pics
คัดลอกและวางหลายไฟล์พร้อมกัน
สามารถคัดลอกหลายไฟล์ได้ โดยใช้วงเล็บปีกกา {} รายชื่อไฟล์คั่นด้วยคอมม่า
cp ~/Downloads/{file1.txt,file2.jpg,file3.odt} ~/Documents/
ไฟล์ทั้งสามประเภทต่างกันจะถูกคัดลอกไปยัง Documents
คัดลอกไฟล์ชนิดเดียวกันทั้งหมด
หากมีไฟล์ชนิดเดียวกันจำนวนมาก ใช้ wildcard * แอสเทอริกซ์บอกให้รับทุกอย่างในตำแหน่งนั้น เช่น *.jpg จะคัดลอกไฟล์ JPG ทั้งหมด
cp ~/Downloads/*.jpg ~/Pictures/
หากต้องการหลายชนิด เช่น JPG และ PNG ใช้วงเล็บปีกกา:
cp ~/Downloads/*.{jpg,png} ~/Pictures/
ย้ายไฟล์หรือโฟลเดอร์
หากต้องการย้าย (ไม่คัดลอก) ใช้คำสั่ง mv ไวยากรณ์คล้าย cp
mv ~/Downloads/your-file.txt ~/Documents/
สามารถเปลี่ยนชื่อขณะย้ายได้:
mv ~/Downloads/your-file.txt ~/Documents/renamed.txt
ความแตกต่างสำคัญ: ไม่ต้องใช้แฟล็ก -r สำหรับย้ายโฟลเดอร์
mv ~/Downloads/downloaded-folder ~/Pictures/vacation-pics
แค่นี้ก็พร้อมคัดลอกและย้ายไฟล์จากบรรทัดคำสั่งแล้ว วิธี CLI มีประสิทธิภาพในบางสถานการณ์
อยากเรียนรู้ CLI เพิ่ม? ดูวิธีตรวจสอบประวัติ sudo หรือความหมายของคำสั่ง chmod 777