วิธีคัดลอกไฟล์ไปยังหลายไดเรกทอรีใน Linux
ในขณะที่เรียนรู้ Linux ถือเป็นบรรทัดฐานสำหรับมือใหม่ที่จะพิมพ์คำสั่งหลาย ๆ คำต่อไปเพื่อทำงานง่ายๆ ให้สำเร็จ สิ่งนี้สามารถเข้าใจได้โดยเฉพาะอย่างยิ่งเมื่อเราเพิ่งเริ่มคุ้นเคยกับการใช้เทอร์มินัล
อย่างไรก็ตาม เมื่อคุณตั้งตารอที่จะเป็นผู้ใช้ Linux ระดับสูง การเรียนรู้สิ่งที่ฉันเรียกว่า “คำสั่งทางลัด” สามารถลดแนวโน้มการเสียเวลาได้อย่างมาก
ในบทความนี้ เราจะอธิบายวิธีง่ายๆ โดยใช้คำสั่งเดียวเพื่อคัดลอกไฟล์ไปยังหลายไดเร็กทอรีใน Linux
ใน Linux คำสั่ง cp ใช้เพื่อคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรี รูปแบบที่ง่ายที่สุดในการใช้งานมีดังนี้:
cp [options….] source(s) destination
หรือคุณสามารถใช้คำสั่ง Advanced-copy ซึ่งจะแสดงแถบความคืบหน้าขณะคัดลอกไฟล์/โฟลเดอร์ขนาดใหญ่ใน Linux
พิจารณาคำสั่งด้านล่าง โดยปกติคุณจะพิมพ์คำสั่งที่แตกต่างกันสองคำสั่งเพื่อคัดลอกไฟล์เดียวกันลงในไดเร็กทอรีที่แยกกันสองไดเร็กทอรีดังนี้:
cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/test
cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/tmp
สมมติว่าคุณต้องการคัดลอกไฟล์หนึ่งๆ ลงในไดเร็กทอรีไม่เกินห้าไดเร็กทอรี หมายความว่าคุณจะต้องพิมพ์ คำสั่ง cp ห้าคำสั่งขึ้นไป
เพื่อแก้ไขปัญหานี้ คุณสามารถใช้คำสั่ง echo คำสั่ง pipe, xargs ร่วมกับคำสั่ง cp ในรูปแบบด้านล่าง:
echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh
ในรูปแบบด้านบน เส้นทางไปยังไดเร็กทอรี (dir1,dir2,dir3…..dirN) จะถูกสะท้อนและไพพ์เป็นอินพุตไปยังคำสั่ง xargs โดยที่:
-n 1
– บอกให้ xargs ใช้ได้สูงสุด 1 อาร์กิวเมนต์ต่อบรรทัดคำสั่ง และส่งไปยังคำสั่ง cpcp
– ใช้สำหรับคัดลอกไฟล์-v
– เปิดใช้งานโหมด verbose เพื่อแสดงรายละเอียดของการดำเนินการคัดลอก
ลองอ่าน man page ของคำสั่ง cp
, echo
และ xargs
เพื่อค้นหาข้อมูลการใช้งานขั้นสูงที่เป็นประโยชน์:
man cp
man echo
man xargs
เพียงเท่านี้ คุณสามารถส่งคำถามเกี่ยวกับหัวข้อหรือข้อเสนอแนะใดๆ ผ่านทางแบบฟอร์มความคิดเห็นด้านล่างได้ คุณอาจต้องการอ่านเกี่ยวกับคำสั่งความคืบหน้าซึ่งช่วยในการติดตามความคืบหน้าของ (cp, mv, dd, tar ฯลฯ) คำสั่งต่างๆ ที่รันอยู่บน Linux ในปัจจุบัน